Ubuntu 上 Tomcat 日志报错是一个非常常见的问题,但原因很多,通常需要结合具体报错信息来判断。下面我先给你一个通用排查思路 + 常见错误类型 + 解决方案,你可以对照看看;如果你愿意,把具体报错内容贴出来(如 catalina.out 中的异常),我可以精准帮你分析。
Ubuntu 默认常见路径:
/var/log/tomcat*/catalina.out
/var/log/tomcat*/localhost.*.log
/var/log/tomcat*/manager.*.log
或手动安装:
/opt/tomcat/logs/catalina.out
查看日志:
tail -n 200 /var/log/tomcat9/catalina.out
java: command not found
UnsupportedClassVersionError
java -version
✅ 正确示例:
openjdk version "11.0.x"
❌ 错误情况:
sudo apt install openjdk-11-jdk
设置 JAVA_HOME:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
Address already in use
BindException
sudo netstat -tlnp | grep 8080
sudo kill -9 PID
或修改端口:
/etc/tomcat9/server.xml
<Connector port="8081" protocol="HTTP/1.1" />
Permission denied
sudo chown -R tomcat:tomcat /var/log/tomcat9
sudo chmod -R 755 /var/log/tomcat9
✅ 不要用 root 直接运行 Tomcat
FAIL - Application at context path [...] could not be started
ClassNotFoundException
rm -rf /var/lib/tomcat9/webapps/xxx
重新部署 war
| Tomcat | Java | Servlet |
|---|---|---|
| 8.5 | Java 7+ | 3.1 |
| 9 | Java 8+ | 4.0 |
| 10 | Java 11+ | 5.0 |
⚠️ Tomcat 10 包名变了(jakarta.*)
# 1. 查看最后 100 行日志
tail -n 100 /var/log/tomcat9/catalina.out
# 2. 看是否启动成功
systemctl status tomcat9
# 3. 看端口监听
ss -lntp | grep java
你可以直接贴出类似这样的信息:
org.apache.catalina.LifecycleException: Failed to start component
Caused by: java.lang.ClassNotFoundException
或者告诉我:
我可以逐行帮你分析 ✅