在 Ubuntu 上运行 Java 程序报错,原因非常多,需要先看具体报错内容。下面我按“常见场景 + 处理思路 + 常用命令”给你一个通用排查指南,你可以对照自己的情况处理;如果方便,也可以把完整报错信息贴出来,我可以直接帮你定位。
java -version
如果提示:
Command 'java' not found
说明 Java 没装或没配置 PATH
安装 OpenJDK(推荐):
sudo apt update
sudo apt install openjdk-17-jdk
验证:
java -version
javac -version
command not found: java原因:没装 Java 或环境变量没配置
解决:
sudo apt install default-jdk
或指定版本:
sudo apt install openjdk-11-jdk
UnsupportedClassVersionError示例:
UnsupportedClassVersionError: ... has been compiled by a more recent version of the Java Runtime
原因:
解决:
sudo apt install openjdk-17-jdk
javac -source 8 -target 8 xxx.java
ClassNotFoundException / NoClassDefFoundError原因:
解决:
java -cp . com.example.Main
确认:
Permission deniedbash: ./xxx.jar: Permission denied
解决:
chmod +x xxx.jar
java -jar xxx.jar
Port already in useAddress already in use
查看端口:
sudo netstat -tulnp | grep 8080
杀进程:
sudo kill -9 PID
-Dfile.encoding=UTF-8
示例:
java -Dfile.encoding=UTF-8 -jar app.jar
sudo nano /etc/environment
添加:
JAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64"
生效:
source /etc/environment
你可以直接发:
lsb_release -a)例如:
Ubuntu 22.04,openjdk 17,运行
java -jar app.jar报错:
Exception in thread "main" java.lang.NullPointerException
我可以按这个直接给你解决方案。