Java17是长期支持版本,升级到Java17的公司越来越多,特别是Spring Boot3.0最低要求Java17,放弃了对Java8的支持。 但是在升级的时候,还不能保证服务器上的所有Java进程都同步升级,所以系统需要同时安装Java8和Java17。
假设当前系统已经安装了Java8,路径在/usr/bin/java -> /etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.345.b01-1.el7_9.x86_64/jre/bin/java
安装Java17
- 下载rpm包,然后使用yum localinstall 命令安装 安装完成后/etc/alternatives/java就会链接到新装的Java 17,这样会导致未升级的Java也会使用Java 17,可能导致失败。
支持双版本并兼容未升级的Java程序
- 新建符号java17符号连接
ln -s /usr/lib/jvm/jdk-17-oracle-x64/bin/java /etc/alternatives/java17
ln -s /etc/alternatives/java17 /usr/bin/java17
- 恢复java8符号连接
ln -s /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.345.b01-1.el7_9.x86_64/jre/bin/java /etc/alternatives/java
ln -s /etc/alternatives/java /usr/bin/java
ln -s /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.345.b01-1.el7_9.x86_64 /etc/alternatives/java_sdk
ln -s /usr/lib/jvm/jdk-17-oracle-x64 /etc/alternatives/java_sdk_17
这样未升级的进程可以不用做任何改动,升级的java进程就是用java17命令
- maven命令 maven是依赖JAVA_HOME环境变量
# Java8
export JAVA_HOME=/etc/alternative/java_sdk
# Java17
export JAVA_HOME=/etc/alternative/java_sdk_17