JDK 1.8 已经装好,JDK 17 安装
从截图看,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/ 下sudotar-xzfopenlogic-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 命令sudoupdate-alternatives--install/usr/bin/javajava/usr/lib/jvm/openlogic-openjdk-17/bin/java2# 注册 JDK 17 的 javac 命令sudoupdate-alternatives--install/usr/bin/javac javac /usr/lib/jvm/openlogic-openjdk-17/bin/javac2# 查看当前选项列表update-alternatives--listjava第三步:确认 JDK 8 仍然是默认
java-version# 应该仍然显示 1.8.0_362,如果没有,执行下面的切回命令# 切回 JDK 8(如果意外变了)sudoupdate-alternatives--setjava/usr/lib/jvm/java-8-openjdk-amd64/bin/javasudoupdate-alternatives--setjavac /usr/lib/jvm/java-8-openjdk-amd64/bin/javac第四步:按需使用 JDK 17
方式 A:交互式切换
# 切换到 JDK 17sudoupdate-alternatives--configjavasudoupdate-alternatives--configjavac# 选 JDK 17 对应的序号# 切回 JDK 8sudoupdate-alternatives--configjava# 选 JDK 8 对应的序号方式 B:按项目指定(推荐,互不干扰)
# 用 JDK 17 运行/usr/lib/jvm/openlogic-openjdk-17/bin/java-jarapp.jar /usr/lib/jvm/openlogic-openjdk-17/bin/javac MyApp.java# 用 JDK 8 运行(不变)/usr/lib/jvm/java-8-openjdk-amd64/bin/java-jarapp.jar方式 C:写两个切换脚本
# /usr/local/bin/use-jdk8exportJAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64exportPATH=$JAVA_HOME/bin:$PATH# /usr/local/bin/use-jdk17exportJAVA_HOME=/usr/lib/jvm/openlogic-openjdk-17exportPATH=$JAVA_HOME/bin:$PATH总结
| 操作 | 是否影响 JDK 8 |
|---|---|
| 解压 JDK 17 到独立目录 | ❌ 不影响 |
| update-alternatives 注册 | ❌ 不影响(只要不 --set 切换默认) |
| 用绝对路径运行 JDK 17 | ❌ 不影响 |
| 切默认版本到 JDK 17 | ⚠️ 影响全局 java 命令,但不影响写死 JDK 8 路径的应用 |
核心原则:解压到独立目录 + 不切换默认 = 完全安全。
