在 CentOS 上运行 Java 程序报错,原因有很多种,下面我按常见原因 → 排查方法 → 解决办法给你一个系统性的总结,你可以对照看看是哪一类。
报错示例
-bash: java: command not found
或
UnsupportedClassVersionError
检查
java -version
which java
解决
yum install -y java-1.8.0-openjdk
# 或
yum install -y java-11-openjdk
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_PATH/bin:$PATH
报错示例
Error: JAVA_HOME is not defined correctly
解决
vi /etc/profile
添加:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH
生效:
source /etc/profile
报错示例
Permission denied
或
Unable to access jarfile
解决
chmod +x xxx.jar
chmod 755 run.sh
报错示例
Address already in use
检查
netstat -tunlp | grep 8080
解决
kill -9 PID
# 或换端口
报错示例
java.lang.OutOfMemoryError
解决
java -Xms512m -Xmx1024m -jar app.jar
报错示例
Permission denied(明明有权限)
临时关闭测试
setenforce 0
永久关闭
vi /etc/selinux/config
SELINUX=disabled
报错示例
No such file or directory
安装基础库
yum install -y glibc libstdc++
1. java -version
2. echo $JAVA_HOME
3. 看报错完整信息
4. 看日志(nohup.out / catalina.out)
5. 检查端口、权限、SELinux
你可以直接把 完整报错信息 发出来(哪怕是截图文字),例如:
cat /etc/redhat-release)我可以直接帮你定位到具体那一行的问题。