在 CentOS 上 Java 启动失败 的原因有很多种,下面按最常见原因 → 排查方法 → 解决思路给你一个系统性的总结。
现象
java -version
-bash: java: command not found
解决
# 查看是否安装
rpm -qa | grep java
which java
# 安装 OpenJDK(示例 CentOS 7)
yum install -y java-1.8.0-openjdk
现象
JAVA_HOME is not set解决
# 查找 java 路径
which java
# 或
ls /usr/lib/jvm/
编辑:
vim /etc/profile
添加:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH
生效:
source /etc/profile
现象
Address already in use
Bind failed
排查
netstat -tunlp | grep 8080
# 或
ss -tunlp | grep 8080
解决
kill -9 PID
现象
Could not reserve enough space for object heap
Java HotSpot(TM) 64-Bit Server VM warning
解决
free -m
java -Xms256m -Xmx512m -jar app.jar
现象
Permission denied
解决
chmod +x app.jar
# 或
chown -R user:user /app
现象
临时关闭测试
setenforce 0
永久关闭
vim /etc/selinux/config
SELINUX=disabled
firewall-cmd --list-ports
firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reload
典型错误
no main manifest attribute
解决
Main-Classjar tf app.jar | grep META-INF/MANIFEST.MF
1. java -version
2. echo $JAVA_HOME
3. 看启动日志(nohup.out / catalina.out)
4. netstat -tunlp
5. free -m
6. getenforce
7. firewall-cmd --list-all
你可以直接贴出:
java -jar xxx)cat /etc/redhat-release)我可以一步一步帮你定位到具体原因。