一、检测是否有项目正在使用 JDK 1.8

1. 检查正在运行的 Java 进程

ps aux | grep java
  • 观察输出:查看进程的启动命令中是否包含 jdk1.8 或旧版本的路径。

2. 检查 Java 版本调用情况

which java        # 查看默认 Java 路径
java -version     # 查看默认版本

如果输出显示 1.8.x,则可能有脚本依赖环境变量,但不一定代表当前有进程运行。


二、如果没有项目使用 JDK 1.8:替换为 JDK 17

1. 下载 JDK 17 for ARM64

wget https://download.java.net/java/GA/jdk17.0.2/dfd4a8d0985749f896bed50d7138ee7f/8/GPL/openjdk-17.0.2_linux-aarch64_bin.tar.gz

2. 解压并安装到系统目录

sudo tar -xzf openjdk-17.0.2_linux-aarch64_bin.tar.gz -C /usr/lib/jvm/

3. 更新系统默认 Java 版本

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-17.0.2/bin/java 1000
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk-17.0.2/bin/javac 1000
sudo update-alternatives --config java  # 选择 JDK 17

4. 验证版本

java -version  # 应显示 "17.0.2"

三、如果仍有项目使用 JDK 1.8:保留并安装 JDK 17 共存

1. 安装 JDK 17(同上)

wget https://download.java.net/java/GA/jdk17.0.2/dfd4a8d0985749f896bed50d7138ee7f/8/GPL/openjdk-17.0.2_linux-aarch64_bin.tar.gz
sudo tar -xzf openjdk-17.0.2_linux-aarch64_bin.tar.gz -C /usr/lib/jvm/

2. 将 JDK 17 添加到备选列表

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-17.0.2/bin/java 1000
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk-17.0.2/bin/javac 1000

3. 不更改默认版本,仅在项目中指定 JDK 17

在启动项目的脚本或命令中直接指定 JDK 17 的路径:

/usr/lib/jvm/jdk-17.0.2/bin/java -jar your-project.jar

或设置临时环境变量:

export JAVA_HOME=/usr/lib/jvm/jdk-17.0.2
export PATH=$JAVA_HOME/bin:$PATH
java -jar your-project.jar

四、验证共存配置

update-alternatives --config java  # 查看所有已注册的 JDK
  • 选择编号切换默认版本,或保持原样仅在项目中指定。


五、注意事项

  1. 关键服务检查:替换 JDK 前,确保无后台服务(如 Tomcat、Jenkins)依赖 JDK 1.8。

  2. 环境变量:如果全局更换 JDK,检查 /etc/profile~/.bashrc 中的 JAVA_HOME

  3. ARM64 兼容性:确认下载的 JDK 17 明确支持 ARM64 架构。

完成以上步骤后,项目可以按需选择 JDK 版本运行。