OpenJDK和OracleJDK多版本共存和切换

在编译一个比较老的版本的Android的时候,系统提示JDK版本不正确,如下图所示。系统安装的是OpenJDK,而编译需要的是Sun/Oracle JDK,网上有很多建议卸载了OpenJDK然后重新安装Sun/Oracle JDK,这样会导致在编译新版的Android时又得重新安装,反复卸载安装,比较浪费时间。其实在Ubuntu上,是可以多个版本JDK共存的,无论是OpenJDK多版本,Sun/Oracle JDK多版本还是OpenJDK和Sun/Oracle JDK混合的多版本是都是可以的在这里插入图片描述
首先下载Sun/Oracle JDK,可以从官网下载https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html,由于官网需要登录,大家可以从百度网盘进行下载,链接: https://pan.baidu.com/s/1pYoUo73prWe3GFBTbfcKew 提取码: pqic
然后我们找到系统之前已经安装的OpenJDK的位置,将Sun/Oracle JDK也安装在同一位置,便于后期维护。(已经下载并拷贝解压到该路径下,大家可以根据自己的实际情况进行处理)在这里插入图片描述
解压完成后我们可以先看看本地的java版本信息,输入java -version
在这里插入图片描述
在Linux系统中,update-alternatives命令用于软件版本的切换,先输入update-alternatives --help查看用法,如下图所示
在这里插入图片描述
可见我们选择第一个,--install命令即可实现多版本的共存,输入which java,可以查看系统java命令的链接路径,如下图所示,即/usr/bin/java,命令的名称是java,路径就是我们刚解压的java命令的路径,即/usr/lib/jvm/jdk1.8.0_211/bin/java (大家根据自己的实际路径进行配置),优先级可以随便设置
在这里插入图片描述
根据上述对update-alternatives命令的用法分析,我们可以将Sun/Oracle JDK 1.8加入本系统的JDK的可选项中

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0_211/bin/java 100

输入上面第一条命令即可,然后根据update-alternatives的--config命令的用法,我们在需要切换java版本时,需要在其后面跟命令的名称,在这里就是java,因此update-alternatives --config java就可以列出系统全部配置好的java版本选项,执行如下命令

sudo update-alternatives --config java

执行结果如下图所示,我们现在想从OpenJDK切换为Sun/Oracle JDK 1.8,输入选择2即可(根据实际选项进行选择),然后再输入java--version命令,可见系统java已经切换为Sun/Oracle JDK 1.8版本
在这里插入图片描述
后记:
对于安装Sun/Oracle JDK 1.8,网上还有另外两种方式,第一种是sudo apt-get install oracle-java8-installer,该方式需要添加ppa源,且仅支持到Ubuntu16.04,对于后续版本不在支持,经过实际测试,在Ubuntu20.04上是无法安装的,提示找不到源了;第二种方式就是解压源码后修改/etc/profile等文件,进行环境配置的方式,该方式在切换版本时很不便捷,且很多人修改的补全,导致开启新的命令行窗口或者重启电脑后java命令失效。因此建议实际开发的话还是采用本文的操作方式。
对于javac命令也可以安装上述流程配置多个版本。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值