linux java 多版本_在Ubuntu18.04系统中配置多个版本的JDK以满足不同的需求

本文介绍了如何在Ubuntu18.04系统中安装并管理多个JDK版本,包括openjdk-11、openjdk-8、openjdk-7和Oracle JDK 1.8。通过`update-alternatives`命令切换不同版本,以满足编译Android源码和日常开发的不同需求。
摘要由CSDN通过智能技术生成

安装了Ubuntu18.04系统,由于要编译不同的android源码,所以需要不同的JDK版本,一共装了四个JDK版本,分别是openjdk-11、openjdk-8、openjdk-7、oracle jdk1.8,想用哪个jdk版本就切换哪个jdk,如果还想要JDK 10,那就参考Ubuntu系统中Java环境JDK 10的安装、配置、测试一文。如果你也有多个版本的JDK需求,那就跟我一起来吧。

先声明为什么要这么多的JDK版本

因为要在Ubuntu18.04系统中编译android源码,所以安装了openJDK-7 (用于编译Android6.0以下版本的源码)、openJDK-8(用于编译Android6.0以上版本的源码)、日常开发中AS用的是Oracle 的java1.8,另外还安装了Ubuntu18.04的默认jdk版本openJDK-11,这样就有了四个JDK版本,在不同的使用情景下需要来回切换,用来切换jdk版本的命令是update-alternatives。

一、安装openjdk-11

执行命令:

sudo apt install openjdk-11-jdk

因为Ubuntu18.04的默认JDK就是openJDK-11,所以也可以执行命令:

sudo apt install default-jdk

946a077c630d994eede3c8db462a0294.png

二、安装openjdk-8

执行命令:

sudo apt install openjdk-8-jdk

c1db81f16ea485b7e88a816553a6423c.png

三、安装openjdk-7

据说Ubuntu18.04已经去除了openJdk-7的源,所以本次进行了下载后手动安装:

下载以上安装包,然后执行命令:

sudo dpkg -i openjdk-7-* libjpeg62-turbo* libfontconfig1* fontconfig-config*

如果在安装过程中报错,则执行以下命令:

sudo apt --fix-broken install

下面看一下openJDK-7的安装路径,执行一下命令:

dpkg -L openjdk-7-jdk

400576503f623ecf3eae8e94500d6e24.png

我们看到openJdk-7的安装路径是/usr/lib/jvm,进入该目录下查看该目录中的内容:

cd /usr/lib/jvm/ ; ls -al

3b228dc9cb7a9bef8e5d3842f26bc36b.png

注意看红色箭头指向的三个文件夹,分别是上面安装的openjdk-11、openjdk-8、openjdk-7的安装路径,知道了这三个版本jdk的安装路径。

四、安装oracle版jdk1.8

为了统一管理和方便查找,我们把oracle1.8的jdk也安装到该目录下,打开oracle-jdk下载官网:

3ddde55b51abb6342dee7800d8fae72b.png

下载相应的jdk版本,我的系统是64位的,所以下载的是Linux x64的。将下载的安装包移动到/usr/lib/jvm/目录下,然后解压:

sudo tar -zxvf jdk-8u181-linux-x64.tar.gz

解压后多出来的目录就是oracle版本的jdk安装目录

88566212290492dd7e34d5a043f79f8f.png

由于是多版本jdk使用所以这里就没必要配置环境变量了。

切换jdk版本

我们执行java -version,这时看到显示的版本是openJdk-11:

4b8d5bc00df55d288b72a243aefa8a37.png

那我们就要思考一下了,刚刚明明装了好几个版本的jdk,为什么现在获取的是11,不是7或者8呢。那就找一下,java命令是怎么设置的,最终在/usr/bin路径下找到java命令:

310e850c0529078c2fa0112a6bf58b0b.png

我们看,这个文件不是一个普通的文件,而是一个链接,指向的是/etc/alternatives/路径下的java 文件,再查看/etc/alternatives/java文件,发现也是个链接:

8a1ee813445940e359d613dcce194c54.png

在看该链接的指向,是不是有点熟悉了,对,就是我们上面提到的jdk的安装目录下的可执行文件。终于找到真正的主角了。到这里我们就明白了,原来是靠着链接文件来指向某一个版本的可执行文件来实现多版本配置的。那我们应该怎么改变这个指向呢,这就要用到update-alternatives命令了。关于该命令的详细用法请自行google、baidu。执行切换版本命令:

sudo update-alternatives --config java

8944e5e206dfc7601e4dfff6f20e28ed.png

我们看到列出的可配置项中只有openjdk相关候选项,没有oracle版本jdk的候选项。是因为Openjdk都是系统安装的,已经自动添加到可配置列表中,而oracle的jdk是手动解压到本地的,需要我们手动添加,那怎么将其增加到可选配置列表中呢,

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0_181/bin/java 300

sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.8.0_181/bin/javac 300

注意把jdk1.8.0_181换成你自己的文件夹。

然后再次执行 sudo update-alternatives --config java

406cd7c2bdb69495971844fd786dbb05.png

这回发现可选列表用已经有了oracle版本的jdkle ,然后根据提示输入对应的编号,然后回车确认。

然后在执行:

java -version

d2d71f1684ef76d34c67843e01008e67.png

已然切换到oracle版本的jdk。

相关主题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值