温馨提示×

ubuntu下java报错怎么查

小樊
42
2026-09-22 09:29:29
栏目: 编程语言

在 Ubuntu 下排查 Java 报错,通常可以按下面几个层次来做:


一、先看报错信息本身

  1. 命令行直接运行时的错误
java -jar yourapp.jar
# 或
java YourMainClass
  • 重点看:
    • Exception in thread "main"
    • 异常类型(如 NullPointerException, ClassNotFoundException)
    • 堆栈信息(最上面一行通常最接近问题)
  1. 保存错误日志
java -jar yourapp.jar > error.log 2>&1
cat error.log

二、确认 Java 环境

1. 查看 Java 是否安装

java -version
javac -version

2. 查看 JAVA_HOME

echo $JAVA_HOME
which java

3. 多个 Java 版本冲突

update-alternatives --config java

三、常见 Ubuntu 下 Java 报错及排查

1. command not found: java

  • 没装 JDK/JRE
sudo apt update
sudo apt install default-jdk

2. UnsupportedClassVersionError

  • Java 版本不匹配(如用 Java 8 跑 Java 17 编译的程序)
java -version
# 确认版本一致

3. ClassNotFoundException / NoClassDefFoundError

  • 类路径问题
java -cp ".:lib/*" MainClass

4. 权限问题

chmod +x yourapp.jar

5. 端口被占用

netstat -tunlp | grep 8080
# 或
lsof -i:8080

四、查看系统级日志

1. 系统日志

journalctl -xe

2. 如果是服务(systemd)

systemctl status yourapp.service
journalctl -u yourapp.service

五、调试手段

1. 打开调试信息

java -verbose:class -jar yourapp.jar

2. 远程调试

java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar yourapp.jar

3. 使用 jstack / jmap(排查卡死、内存)

jps
jstack <pid>
jmap -heap <pid>

六、贴报错给我更快定位

如果你愿意,可以直接把:

  • 完整报错(红色部分)
  • Java 版本
  • Ubuntu 版本
  • 运行命令

贴出来,我可以帮你具体分析原因。

0 踩