参考
参考链接:在centos7中安装jdk11,17并实现版本的切换
安装
JDK-21
- 下载
wget https://mirrors-i.tuna.tsinghua.edu.cn/Adoptium/21/jre/x64/linux/OpenJDK21U-jre_x64_linux_hotspot_21.0.4_7.tar.gz
wget https://mirrors-i.tuna.tsinghua.edu.cn/Adoptium/21/jre/x64/linux/OpenJDK21U-jre_x64_linux_hotspot_21.0.4_7.tar.gz
- 安装
tar -zxvf OpenJDK21U-jre_x64_linux_hotspot_21.0.4_7.tar.gz -C /usr/jdk-21
JDK-8
同上,略
测试
- 验证jdk-21/
/usr/jdk-21/bin/java -version
openjdk version "21.0.4" 2024-07-16 LTS
OpenJDK Runtime Environment Temurin-21.0.4+7 (build 21.0.4+7-LTS)
OpenJDK 64-Bit Server VM Temurin-21.0.4+7 (build 21.0.4+7-LTS, mixed mode, sharing)
- 验证jdk-8
/usr/jdk-8/bin/java -version
安装alternatives切换
- 安装java
alternatives --install /usr/bin/java java /usr/jdk-21/bin/java 20
alternatives --install /usr/bin/java java /usr/jdk-8/bin/java 40
- 设置默认模式(会根据优先级自动选择,如上述 40为默认)
alternatives --auto java
- 查看大当前设置
alternatives --display java
java - 状态为自动。
链接当前指向 /usr/jdk-21/bin/java
/usr/jdk-8/bin/java - priority 40
/usr/jdk-21/bin/java - priority 20
当前“最佳”版本是 /usr/jdk-8/bin/java。
验证切换
- 切换jdk-8
alternatives --config java
共有 2 个提供“java”的程序。
选项 命令
-----------------------------------------------
* 1 /usr/jdk-8/bin/java
+ 2 /usr/jdk-21/bin/java
按 Enter 保留当前选项[+],或者键入选项编号:1
/usr/bin/java -version
java version "1.8.0_212"
Java(TM) SE Runtime Environment (build 1.8.0_212-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.212-b10, mixed mode)
- 切换jdk-21
alternatives --config java
共有 2 个提供“java”的程序。
选项 命令
-----------------------------------------------
*+ 1 /usr/jdk-8/bin/java
2 /usr/jdk-21/bin/java
按 Enter 保留当前选项[+],或者键入选项编号:2
/usr/bin/java -version
openjdk version "21.0.4" 2024-07-16 LTS
OpenJDK Runtime Environment Temurin-21.0.4+7 (build 21.0.4+7-LTS)
OpenJDK 64-Bit Server VM Temurin-21.0.4+7 (build 21.0.4+7-LTS, mixed mode, sharing)
自动加载环境变量
配置环境变量
vim /etc/profile
# 在/etc/profile定义,每次根据当前java 切换不同的Java环境变量
JAVA_PATH=$(readlink -f /usr/bin/java) # 获取当前java命令路径
JAVA_HOME=${JAVA_PATH%/bin/java*} # 截取JAVA_HOME路径,shell语法参考{var%.*}
JRE_HOME=$JAVA_HOME/jre
CLASSPATH=.:$JAVA_HOME:$JRE_HOME/lib
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME JRE_HOME CLASSPATH PATH
手动切换方式
- 输入命令,检查当前的java版本(+标识)
alternatives --config java
- 可以根据提示输入编号,切换JDK(输入2,切换jdk-21)
共有 2 个提供“java”的程序。
选项 命令
-----------------------------------------------
*+ 1 /usr/jdk-8/bin/java
2 /usr/jdk-21/bin/java
按 Enter 保留当前选项[+],或者键入选项编号:2
- 加载环境变量生效( 如果切换了java,需要执行 )
source /etc/profile
检查当前环境变量
- 检查java 版本
[root@centos7-5241 ~]# java -version
openjdk version "21.0.4" 2024-07-16 LTS
OpenJDK Runtime Environment Temurin-21.0.4+7 (build 21.0.4+7-LTS)
OpenJDK 64-Bit Server VM Temurin-21.0.4+7 (build 21.0.4+7-LTS, mixed mode, sharing)
- 检查JAVA_HOME
[root@centos7-5241 ~]# echo $JAVA_HOME
/usr/jdk-21.0.4+7
- 检查JRE_HOME
[root@centos7-5241 ~]# echo $JRE_HOME
/usr/jdk-21.0.4+7/jre
- 检查CLASSPATH
[root@centos7-5241 ~]# echo $CLASSPATH
.:/usr/jdk-21.0.4+7:/usr/jdk-21.0.4+7/jre/lib
- 检查系统路径
[root@centos7-5241 ~]# echo $PATH
/usr/local/nginx1.26.1/sbin:/usr/local/python3.11/bin:/usr/jdk-21.0.4+7/bin:/usr/local/nginx1.26.1/sbin:/usr/local/python3.11/bin:/usr/java/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin