温馨提示×

debianjava报错怎排查

小樊
38
2026-09-07 23:40:14
栏目: 编程语言

在 Debian 上排查 Java 报错,一般可以按下面思路一步步来,从环境 → 日志 → 代码 → 系统资源逐步定位。


一、先确认 Java 环境是否正常

1. 查看 Java 是否安装

java -version
javac -version

如果提示 command not found

sudo apt update
sudo apt install default-jdk

2. 查看有多个 Java 版本(很常见坑)

update-alternatives --list java

切换版本:

sudo update-alternatives --config java

二、看报错信息(最重要)

1. 直接运行时的报错

java -jar yourapp.jar

重点看:

  • Exception in thread "main"
  • Caused by
  • NoClassDefFoundError
  • UnsupportedClassVersionError(JDK 版本不对)

2. 常见错误速查

报错 原因
UnsupportedClassVersionError 编译 JDK 高于运行 JDK
NoClassDefFoundError 缺少依赖 jar
Permission denied 没执行权限 / 端口权限
Address already in use 端口被占用

三、如果是服务(systemd)

1. 查看服务状态

systemctl status yourapp.service

2. 看详细日志

journalctl -u yourapp.service -n 100 --no-pager

3. 常见 systemd Java 问题

  • JAVA_HOME 没设
  • 工作目录不对
  • 用户权限不足

示例 service:

[Service]
User=appuser
Environment=JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
ExecStart=/usr/bin/java -jar /opt/app/app.jar

四、查看日志文件

Java 应用通常会有:

  • logs/
  • nohup.out
  • catalina.out(Tomcat)
tail -f logs/app.log

五、系统层面排查

1. 端口占用

ss -lntp | grep 8080

2. 内存不足(OOM)

dmesg | grep -i kill
free -h

3. 文件描述符不够

ulimit -n

六、调试手段

1. 打开 JVM 调试

java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=5005,suspend=n -jar app.jar

2. 看 JVM 参数

jps
jstack <pid>

七、你可以这样给我信息,我直接帮你定位

把下面内容贴出来:

  1. 完整报错信息
  2. 运行方式(jar / tomcat / systemd)
  3. java -version
  4. Debian 版本(cat /etc/os-release

我可以直接帮你判断是 环境、代码还是配置问题

0