温馨提示×

Ubuntu为何Tomcat日志报错

小樊
35
2026-08-05 14:23:58
栏目: 智能运维

Ubuntu 上 Tomcat 日志报错是一个非常常见的问题,但原因很多,通常需要结合具体报错信息来判断。下面我先给你一个通用排查思路 + 常见错误类型 + 解决方案,你可以对照看看;如果你愿意,把具体报错内容贴出来(如 catalina.out 中的异常),我可以精准帮你分析。


一、Tomcat 日志在哪里?

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

二、最常见报错原因(重点)

1️⃣ Java 环境问题(最常见)

报错示例

java: command not found
UnsupportedClassVersionError

排查

java -version

✅ 正确示例:

openjdk version "11.0.x"

❌ 错误情况:

  • Java 没装
  • Java 版本不匹配(Tomcat 10 需要 Java 11+)

解决

sudo apt install openjdk-11-jdk

设置 JAVA_HOME:

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64

2️⃣ 端口被占用(8080 / 8005)

报错示例

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" />

3️⃣ 权限问题(Ubuntu 特有)

报错示例

Permission denied

常见原因

  • 使用 root 启动
  • 日志目录不可写

解决

sudo chown -R tomcat:tomcat /var/log/tomcat9
sudo chmod -R 755 /var/log/tomcat9

不要用 root 直接运行 Tomcat


4️⃣ Web 应用部署失败

报错示例

FAIL - Application at context path [...] could not be started
ClassNotFoundException

常见原因

  • war 包损坏
  • 缺少 jar
  • servlet 版本不匹配

解决

  • 删除 webapps 目录中异常应用
rm -rf /var/lib/tomcat9/webapps/xxx

重新部署 war


5️⃣ Tomcat 版本与项目不兼容

Tomcat Java Servlet
8.5 Java 7+ 3.1
9 Java 8+ 4.0
10 Java 11+ 5.0

⚠️ Tomcat 10 包名变了(jakarta.*)


三、快速定位问题的 3 个命令

# 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

或者告诉我:

  1. Ubuntu 版本
  2. Tomcat 版本
  3. Java 版本
  4. 报错日志前 30 行

我可以逐行帮你分析

0