有时为了需要,会在系统中安装多个Java。网上关于这个问题的解决都是同一种思路,即利用sudo update-alternatives进行配置。

我这里也是使用这种方法,只是编写了一个脚本,使得操作起来方便一些。

多个Java的安装

我是在Oracle上下载的压缩包进行解压的。解压完成之后,我们需要将其配置到系统当中,如下

install_java.sh

#!/bin/bash

if [ $# -eq 0 ]thenecho "Provide the jdk path to be installed!"exit
fiif [ ! -e "${1}" ]thenecho "Provided jdk: ${1} does not exist!"exit
fiJDK_PATH=${1}
INSTALL_PRIORITY=300# Remove last '/'
if [ ${1:0-1:1} = '/' ]thenJDK_PATH=${1%/*}
fiif [ $# -gt 1 ]thenINSTALL_PRIORITY=${2}
fiecho "You specify jdk: ${JDK_PATH}"sudo update-alternatives --install /usr/bin/java java ${JDK_PATH}/bin/java ${INSTALL_PRIORITY}
sudo update-alternatives --install /usr/bin/javac javac ${JDK_PATH}/bin/javac ${INSTALL_PRIORITY}
sudo update-alternatives --install /usr/bin/javah javah ${JDK_PATH}/bin/javah ${INSTALL_PRIORITY}
sudo update-alternatives --install /usr/bin/javaws javaws ${JDK_PATH}/bin/javaws ${INSTALL_PRIORITY}
sudo update-alternatives --install /usr/bin/javap javap ${JDK_PATH}/bin/javap ${INSTALL_PRIORITY}

这个脚本有2个参数:
1. jdk的路径(必须)
2. 安装此jdk的priority(可选,默认是300)

Java版本切换

网上介绍的方法是使用update-alternatives --config命令,对上边安装的java, javac…等进行一一配置,选取哪一个jdk为默认的。

其实我们可以借助于安装时的priority来达到这个目的,这个值是越大越优先,所以我们在使用install_java.sh时只需要将第二个参数指定为一个比较大的数字(大于目前所存在的jdk的priority)就可以将当前安装的jdk设置为默认选中的

删除安装的Java

附上如何删除的脚本
remove_java.sh

#!/bin/bash

if [ $# -eq 0 ]thenecho "Provide the jdk path to be removed!"exit
fiif [ ! -e "${1}" ]thenecho "Provided jdk: ${1} does not exist!"exit
fiJDK_PATH=${1}sudo update-alternatives --remove java ${JDK_PATH}/bin/java
sudo update-alternatives --remove javac ${JDK_PATH}/bin/javac
sudo update-alternatives --remove javah ${JDK_PATH}/bin/javah
sudo update-alternatives --remove javaws ${JDK_PATH}/bin/javaws
sudo update-alternatives --remove javap ${JDK_PATH}/bin/javap

使用oracle-java7-set-default切换Java版本

首先需要添加安装源

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update

然后安装对应版本的”切换器”即可
将oracle jdk7设置为默认

sudo apt-get install oracle-java7-set-default

将oracle jdk8设置为默认

sudo apt-get install oracle-java8-set-default

参考

  1. Ubuntu 下 Java 版本的切换
  2. shell截取字符串的方法
  3. Shell脚本8种字符串截取方法总结

Ubuntu下安装多个Java及切换相关推荐

  1. Linux: debian/ubuntu下安装和使用Java 11

    Linux: debian/ubuntu下安装和使用Java 11 只需6行命令: su - echo "deb http://ppa.launchpad.net/linuxuprising ...

  2. Linux: debian/ubuntu下安装和使用Java 8

    Linux: debian/ubuntu下安装和使用Java 8 7行命令解决问题: su - echo "deb http://ppa.launchpad.net/webupd8team/ ...

  3. linux/ubuntu下安装java开发环境

    在ubuntu下安装和配置java开发环境,下面对自己的一些实践做了一下总结. Sun JDK的安装一般有两种方式: 一.通过ubuntu提供的包管理工具进行安装 ubuntu在其包仓库里都包括有JD ...

  4. ubuntu eclipse java_ubuntu 下安装eclipse amp;java环境配置

    前面有一篇的博客写的是ubuntu下安装eclipse和java环境的配置.当时是安装网上的攻略进行的 ,当然也是能够成功的. 近期把那台电脑送人了 ,仅仅好在自己的这台电脑上又一次安装一次了 ,唯一 ...

  5. Linux: debian/ubuntu下安装Neo4j

    文章目录 Linux: debian/ubuntu下安装Neo4j Linux: debian/ubuntu下安装Neo4j Neo4j的官方仓库地址:neo4j/neo4j: Graphs for ...

  6. Ubuntu下安装Nginx,PHP5(及PHP-FPM),MySQL

     Ubuntu下安装Nginx,PHP5(及PHP-FPM),MySQL 2012-09-15 11:12:31 标签:php mysql ubuntu nginx php-fpm 原创作品,允许转载 ...

  7. Ubuntu下安装Qt全部过程

    Ubuntu下安装Qt全部过程 (2013-03-04 22:12:02) 转载▼   分类:ARM Linux 1.到官网http://qt-project.org/downloads或者ftp:/ ...

  8. Docker最全教程之Ubuntu下安装Docker(十五)

    前言 Ubuntu是一个以桌面应用为主的开源GNU/Linux操作系统,应用很广.本篇主要讲述Ubuntu下使用SSH远程登录并安装Docker,并且提供了Docker安装的两种方式,希望对大家有所帮 ...

  9. ubuntu下安装JDK和netbeans

    我在ubuntu下安装netbeans十分简单,我下载了jdk-7u1-nb-7_0_1-linux-ml.sh,直接在终端输入 sh jdk-7u1-nb-7_0_1-linux-ml.sh 安装的 ...

  10. Ubuntu下安装Oracle11g(图文教程)

    由于课程需要,要在Ubuntu下安装一个Oracle,之前都没有装过,所以想通过这篇博文记录一下 1.下载Oracle 11g 下载地址:http://www.oracle.com/technetwo ...

最新文章

  1. 90.386(32位)的保护模式 (286是过渡24位) 91.什么是实模式
  2. SpringBoot 项目使用 SLF4J+logback 进行日志记录,来增强可维护性
  3. Linux 学习笔记之超详细基础linux命令 Part 3
  4. 基于RBAC的权限设计
  5. asp.net mvc 应用Bundle(捆绑和微小)压缩技术 启用 BundleConfig 配置web.config
  6. 设计在链式存储结构上交换二叉树中所有结点左右子树的算法
  7. 冯仑《企业领导最容易犯的十大错误》
  8. c语言编程绘制空间螺旋线,在UG中绘制变螺距螺旋线的方法
  9. 12306接口协议分析
  10. Qt opengl fps相机
  11. 汽车免费WiFi的原理是什么?
  12. android 绘制坐标系(雷达探测界面)
  13. wear手表软件合集_如何找出正在使用Android Wear手表电池的电池
  14. 渗透测试工具集(非常详细),从零基础入门到精通,看完这一篇就够了(附安装)
  15. VS code安装和使用技巧
  16. KiTTY/cnKiTTY与PuTTY/cnPuTTY差异和使用的简单说明~~
  17. 搭建机器人电控系统——PID算法——什么是PID?
  18. 贝加莱PLC编程总结
  19. Xxe漏洞 php,PhpSpreadsheet 1.5.0 XXE漏洞复现及分析
  20. 到底什么是重入锁,拜托,一次搞清楚!

热门文章

  1. 2021 腾讯校招 + 后台开发面经(已 offer)
  2. oracle mysql 同义词_Oracle数据库同义词
  3. SpringBoot注解校验validation自定义异常返回错误消息给前端
  4. PHP中单引号与双引号用法
  5. python打印数字每行自增1个数
  6. 用之前使用正常的keil工程调试程序时,一直卡在 0x00000000 的解决方案
  7. thinkphp 5 验证码错误,可能与session保存路径不同有关
  8. 关于对象中的this指向和修改this指向问题。
  9. 美团外卖饿了么百度外卖竞品分析报告
  10. 基金常用的分析指标:跟踪误差率、信息比率、夏普比率到底是什么意思?