在 Debian 上升级 Java(无论是 OpenJDK 还是 Oracle JDK)时,有几个关键点和常见“坑”需要注意。下面按实用角度梳理:
java -version
which java
update-alternatives --list java
确认:
/usr/lib/jvm/ 下通常有多个)sudo apt update
sudo apt upgrade
如果你明确要装新版本:
sudo apt install openjdk-17-jdk
# 或
sudo apt install openjdk-21-jdk
⚠️ 注意:
backportssdkmanDebian 用 update-alternatives 管理 Java:
sudo update-alternatives --config java
sudo update-alternatives --config javac
建议同时设置:
sudo update-alternatives --set java /usr/lib/jvm/java-17-openjdk-amd64/bin/java
否则可能出现:
java -version 是 17javac -version 是 11(编译报错)这是最容易出问题的地方。
以下情况要单独检查:
echo $JAVA_HOME
常见配置位置:
/etc/environment~/.bashrcEnvironment=JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
修改后:
sudo systemctl daemon-reload
sudo systemctl restart xxx
它们可能写死 Java 路径
常见问题:
jaxbjavax.annotationCORBADebian 不推荐 Oracle JDK:
建议:
sdkmanjava -version
javac -version
echo $JAVA_HOME
跑一遍关键业务或:
systemctl status your-app
journalctl -u your-app
✅ 保留旧 JDK
✅ 新版本并存
✅ 先切测试环境
✅ 再切生产
✅ 回滚方案准备好
如果你愿意,可以告诉我:
cat /etc/debian_version)我可以给你具体升级命令和配置示例。