在 CentOS 上“Java 配不好”是非常常见的问题,通常不是 Java 本身的问题,而是环境、路径、版本冲突导致的。我给你按最常见原因 + 对应解决办法说清楚。
CentOS 默认会装 java-1.8.0-openjdk
which java
java -version
你可能会看到:
/usr/bin/java
openjdk version "1.8.0_xxx"
但你以为自己装的是 Oracle JDK 或 JDK 11+
✅ 解决:
rpm -qa | grep jdk
卸载冲突的:
yum remove java-1.8.0-openjdk*
很多人这样写(❌错误):
export JAVA_HOME=/usr/java
但真实路径可能是:
/usr/java/jdk1.8.0_381
✅ 正确做法:
ls /usr/java
然后:
export JAVA_HOME=/usr/java/jdk1.8.0_381
export PATH=$JAVA_HOME/bin:$PATH
永久生效:
vi ~/.bashrc
CentOS 用 alternatives 管理 Java
alternatives --config java
选择你装的 JDK 编号
再检查:
java -version
javac -version
⚠️ 很多时候 java 能跑,javac 不行,就是没切
如果你:
java -version ✅
javac -version ❌
说明你只装了 JRE
✅ 解决:
yum install java-1.8.0-openjdk-devel
或者装完整 JDK
很多人以为:
Java 起不来 = 配置错了
实际上可能是:
systemctl stop firewalld
setenforce 0
再试 Java 程序
yum install java-11-openjdk-devel
alternatives --config java
tar -zxvf jdk-8u381-linux-x64.tar.gz -C /usr/java
vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_381
export PATH=$JAVA_HOME/bin:$PATH
source /etc/profile
echo $JAVA_HOME
which java
which javac
java -version
javac -version
这 5 条全对,Java 就配好了。
如果你愿意,可以直接把你的报错贴出来(比如 java -version 的结果、报错日志),我可以一步一步帮你定位。