从截图看,JDK 1.8 已经装好,路径是 /usr/lib/jvm/java-8-openjdk-amd64,JDK 17 安装包 openlogic-openjdk-17.0.10+7-linux-x64.tar.gz 也已经下载到桌面。

下面按步骤操作,完全不影响 JDK 1.8


第一步:解压 JDK 17 到独立目录

# 切换到 JDK 17 包所在目录(桌面)
cd ~/Desktop

# 解压到 /usr/lib/jvm/ 下
sudo tar -xzf openlogic-openjdk-17.0.10+7-linux-x64.tar.gz -C /usr/lib/jvm/

# 查看解压后的目录名
ls /usr/lib/jvm/
# 会有 java-8-openjdk-amd64(已有)和 openlogic-openjdk-17(新)

第二步:注册 JDK 17 到 alternatives(不切换默认)

# 注册 JDK 17 的 java 命令
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/openlogic-openjdk-17/bin/java 2

# 注册 JDK 17 的 javac 命令
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/openlogic-openjdk-17/bin/javac 2

# 查看当前选项列表
update-alternatives --list java

第三步:确认 JDK 8 仍然是默认

java -version
# 应该仍然显示 1.8.0_362,如果没有,执行下面的切回命令

# 切回 JDK 8(如果意外变了)
sudo update-alternatives --set java /usr/lib/jvm/java-8-openjdk-amd64/bin/java
sudo update-alternatives --set javac /usr/lib/jvm/java-8-openjdk-amd64/bin/javac

第四步:按需使用 JDK 17

方式 A:交互式切换

# 切换到 JDK 17
sudo update-alternatives --config java
sudo update-alternatives --config javac
# 选 JDK 17 对应的序号

# 切回 JDK 8
sudo update-alternatives --config java
# 选 JDK 8 对应的序号

方式 B:按项目指定(推荐,互不干扰)

# 用 JDK 17 运行
/usr/lib/jvm/openlogic-openjdk-17/bin/java -jar app.jar
/usr/lib/jvm/openlogic-openjdk-17/bin/javac MyApp.java

# 用 JDK 8 运行(不变)
/usr/lib/jvm/java-8-openjdk-amd64/bin/java -jar app.jar

方式 C:写两个切换脚本

# /usr/local/bin/use-jdk8
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH

# /usr/local/bin/use-jdk17
export JAVA_HOME=/usr/lib/jvm/openlogic-openjdk-17
export PATH=$JAVA_HOME/bin:$PATH

总结

操作 是否影响 JDK 8
解压 JDK 17 到独立目录 ❌ 不影响
update-alternatives 注册 ❌ 不影响(只要不 --set 切换默认)
用绝对路径运行 JDK 17 ❌ 不影响
切默认版本到 JDK 17 ⚠️ 影响全局 java 命令,但不影响写死 JDK 8 路径的应用

核心原则:解压到独立目录 + 不切换默认 = 完全安全。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐