Debian Bionic升级后Java版本切换及Tomcat适配问题求助
解决Debian升级后Tomcat使用JDK11而非默认JDK8的问题
Hey Neil, sorry to hear you're stuck with this Java/Tomcat hassle after upgrading Debian. Let's break this down and fix it step by step:
1. 先排查default-java的指向问题
/usr/lib/jvm/default-java是Tomcat依赖的软链接,看起来你之前用update-alternatives只更新了/usr/bin/java,却没同步这个链接。先看看它现在指向哪里:
ls -l /usr/lib/jvm/default-java
2. 用update-java-alternatives全面切换默认JDK
别单独给java命令改替代项,用专门的Java替代工具能一次性更新所有相关链接(包括default-java):
- 先列出所有已安装的JDK,找到JDK8的标识:
你会看到类似sudo update-java-alternatives --listjava-1.8.0-openjdk-amd64 1081 /usr/lib/jvm/java-1.8.0-openjdk-amd64的条目 - 将它设为默认:
sudo update-java-alternatives --set java-1.8.0-openjdk-amd64 - 验证修改是否生效:
ls -l /usr/lib/jvm/default-java java -version
3. 若自动切换失效,手动修复软链接
如果上面的命令没更新default-java,可以手动重置这个链接:
sudo rm /usr/lib/jvm/default-java sudo ln -s /usr/lib/jvm/java-1.8.0-openjdk-amd64 /usr/lib/jvm/default-java
4. 确保Tomcat加载正确的JAVA_HOME
直接在Tomcat脚本里设JAVA_HOME可能不生效,建议修改系统级配置文件:
- 打开Tomcat的默认配置文件:
sudo nano /etc/default/tomcat8 - 添加或修改JAVA_HOME指向JDK8目录:
JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk-amd64" - 保存后重启Tomcat生效:
sudo systemctl restart tomcat8
关于JDK11卸载的小说明
你尝试卸载JDK11时apt提示未安装,大概率是因为装的是JRE 11而非完整JDK,或者它是某个依赖包。可以用下面的命令查看所有OpenJDK相关包:
dpkg --list | grep openjdk
如果确实想移除,可针对性卸载JRE包(比如sudo apt remove openjdk-11-jre-headless),但其实只要JDK8设为默认,留着JDK11也不影响运行。
要是哪一步走不通,随时说,我们再接着排查!
内容的提问来源于stack exchange,提问作者Neil Benn
相关产品推荐
相关产品推荐

