在 Ubuntu 上排查 Java 报错,通常可以按 “看现象 → 看日志 → 看环境 → 看代码/配置” 的思路来。下面给你一套通用排查流程,基本能解决 90% 的问题。
Java 报错一般分几类:
java: command not foundUnsupportedClassVersionErrorjavac 报错NullPointerException、ClassNotFoundExceptionjava -version
javac -version
✅ 正常示例:
openjdk version "17.0.9"
❌ 异常:
Command 'java' not found
sudo apt update
sudo apt install openjdk-17-jdk
(版本可按需:8 / 11 / 17 / 21)
echo $JAVA_HOME
sudo nano /etc/environment
添加或修改:
JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
或用户级:
nano ~/.bashrc
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
生效:
source ~/.bashrc
java: command not found原因
解决
sudo apt install openjdk-17-jdk
UnsupportedClassVersionErrorclass file version 61.0, this version of the Java Runtime only recognizes up to 52.0
原因
解决
javac -source 8 -target 8 xxx.java
ClassNotFoundException / NoClassDefFoundError原因
排查
ls
echo $CLASSPATH
运行 jar
java -jar xxx.jar
运行 class
java -cp . com.example.Main
重点看:
java -jar app.jar
或:
tail -f logs/app.log
常见错误:
netstat -tunlp | grep 8080
java -jar app.jar
nohup java -jar app.jar > app.log 2>&1 &
tail -f app.log
journalctl -xe
chmod +x app.jar
pwd
ls
| 阶段 | 排查重点 |
|---|---|
| 编译 | javac 报错 |
| 运行 | java 报错 |
| 启动 | 端口 / 配置 |
| 运行中断 | 异常栈 |
你可以直接把 完整报错信息 发给我,比如:
✅ 报错截图 / 文字
✅ 执行的命令
✅ Java 版本
✅ Ubuntu 版本
我可以 逐行帮你分析,甚至直接告诉你改哪一行。