You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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 --list
    
    你会看到类似java-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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 05:29:28