Linux 中jdk多版并存

Linux 中jdk多版并存

有时候系统中需要多个jdk版本共存,我们在做特定的操作时需要特定的版本;比如打包项目A时使用的是jdk8,打包项目B时使用的是jdk17;这个时候我们就需要不停的在两个jdk环境之间切换;这里就要用到alternatives 来管理我们的jdk版本;

  1. 首先去官网下载对应的jdk安装包;

  2. 解压

  3. 配置环境变量;如果之前已经有一个jdk版本,现在需要再加第二个版本,那就不用配置环境变量了,环境变量中的版本就当作默认版本;

  4. 接下来就是使用alternatives来管理jdk版本了

alternatives使用方式

usage: alternatives --install
[–initscript ]
[–family ]
[–slave ]*
alternatives --remove
alternatives --auto
alternatives --config
alternatives --display
alternatives --set
alternatives --list

common options: --verbose --test --help --usage --version --keep-missing
–altdir --admindir

配置alternatives

-- 配置jdk1.8 
# alternatives --install /usr/bin/java java /home/java/jdk1.8/bin/java 1
-- 最后的1是自定义的序号,倒数第二个参数是解压后的java命令地址
-- 配置jdk17,java地址改为jdk17地址,序号变为2;有几个版本,这里的序号可以依次递增
# alternatives --install /usr/bin/java java /home/java/jdk17/bin/java 2

上面的序号我们之后改变环境的时候会用到

查看当前版本

有时候我们使用java --version出来的java版本跟我们在配置文件里配置的不一样,我们可以使用以下方式查看当前的java版本

# which java
/bin/java

# ls -l /bin/java
lrwxrwxrwx 1 root root 22 Mar 25 20:53 /bin/java -> /etc/alternatives/java

# ls -l /etc/alternatives/java
lrwxrwxrwx 1 root root 46 Apr  7 09:07 /etc/alternatives/java -> /usr/lib/jvm/java-8-openjdk-arm64/jre/bin/java

最后/etc/alternatives/java软连接对应的java就是我们当前正在使用的java

切换版本

交互方式 手动切换:update-alternatives --config java

# update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-11-openjdk-arm64/bin/java      1111      auto mode
* 1            /usr/lib/jvm/java-11-openjdk-arm64/bin/java      1111      manual mode
  2            /usr/lib/jvm/java-8-openjdk-arm64/jre/bin/java   1081      manual mode

Press <enter> to keep the current choice[*], or type selection number: 2
update-alternatives: using /usr/lib/jvm/java-8-openjdk-arm64/jre/bin/java to provide /usr/bin/java (java) in manual mode

# java -version
openjdk version "1.8.0_312"
OpenJDK Runtime Environment (build 1.8.0_312-8u312-b07-0ubuntu1~20.04-b07)
OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode)

使用 --config java切换版本时,update-alternatives会列出当前已配置的所有版本的java;我们需要手动输入序号进行选择;这是一种交互方式,需要手动输入;有时候我们需要写脚本进行切换,这个时候也可以选择非交互方式进行切换

非交互方式 脚本切换:update-alternatives --set java 直接切换更新java版本

# update-alternatives --set java /usr/lib/jvm/java-8-openjdk-arm64/jre/bin/java
update-alternatives: using /usr/lib/jvm/java-8-openjdk-arm64/jre/bin/java to provide /usr/bin/java (java) in manual mode
# java -version
openjdk version "1.8.0_312"
OpenJDK Runtime Environment (build 1.8.0_312-8u312-b07-0ubuntu1~20.04-b07)
OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值