在 Debian 上调试 Tomcat 错误,通常可以按下面几个层次来排查:日志、配置、权限、Java 环境、系统资源。下面给你一套比较系统的调试思路(适用于 Debian 10/11/12,Tomcat 8/9/10)。
systemctl status tomcat9
(如果是 tomcat8 / tomcat10,替换即可)
常见状态:
active (running) ✅failed ❌activating ⚠️(可能卡住)cd /var/log/tomcat9
ls
重点文件:
catalina.out ✅(最重要)localhost.logmanager.loghost-manager.log实时查看:
tail -f /var/log/tomcat9/catalina.out
常见错误示例:
Address already in use → 端口被占用ClassNotFoundException → 包缺失java.lang.OutOfMemoryError → 内存不足journalctl -u tomcat9 -xe
常用于:
Tomcat 默认端口:
检查端口:
ss -lntp | grep 8080
或
netstat -lntp | grep 8080
如果被占用:
kill -9 PID
或修改端口:
/etc/tomcat9/server.xml
java -version
cat /etc/default/tomcat9
重点:
JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
如果 Java 路径错误,Tomcat 会直接启动失败。
Debian 默认使用:
tomcat9
查看:
ps aux | grep tomcat
chown -R tomcat9:tomcat9 /var/lib/tomcat9
chown -R tomcat9:tomcat9 /var/log/tomcat9
chown -R tomcat9:tomcat9 /etc/tomcat9
⚠️ 不要直接用 root 启动 Tomcat
systemctl stop tomcat9
su - tomcat9
cd /usr/share/tomcat9/bin
./catalina.sh run
✅ 优点:
编辑:
/etc/default/tomcat9
示例:
JAVA_OPTS="-Xms512m -Xmx1024m -XX:+UseG1GC"
如果内存设置过大,Debian 会直接 kill Tomcat。
ls /var/lib/tomcat9/webapps
测试:
ROOTjar tf your.war
| 错误 | 原因 | 解决 |
|---|---|---|
| 404 | 路径错误 | 检查 webapps |
| 500 | 应用异常 | 看 catalina.out |
| 端口占用 | 8080 被占 | 改 server.xml |
| 启动失败 | Java 路径错 | 检查 JAVA_HOME |
| 权限拒绝 | 目录权限 | chown tomcat |
| 内存溢出 | JVM 设置 | 调整 Xmx |
你可以直接贴出:
catalina.out 报错systemctl status tomcat9我可以 逐行帮你分析错误原因。