在 CentOS 上配置 Java 不生效,常见原因和排查思路如下(按出现频率从高到低):
如果你这样写:
export JAVA_HOME=/usr/java/jdk1.8.0_xxx
export PATH=$JAVA_HOME/bin:$PATH
但只在终端执行,重启或新开终端就失效。
✅ 正确做法(永久生效):
vi ~/.bashrc # 当前用户
# 或
vi /etc/profile # 所有用户
添加:
export JAVA_HOME=/usr/java/jdk1.8.0_xxx
export PATH=$JAVA_HOME/bin:$PATH
然后执行:
source ~/.bashrc
# 或
source /etc/profile
/etc/profile 但没 source~/.bash_profile 却用的是 zshsu 而不是 su -✅ 排查:
echo $JAVA_HOME
which java
CentOS 常自带 openjdk
which java
# 可能输出
/usr/bin/java
sudo alternatives --config java
选择你安装的 JDK
或手动指定:
sudo alternatives --install /usr/bin/java java /usr/java/jdk1.8.0_xxx/bin/java 300
常见错误:
/jre 而不是 jdk✅ 检查:
ls $JAVA_HOME/bin/java
/opt 或 /usr/javachmod -R 755 /usr/java/jdk1.8.0_xxx
/usr/java/jdk1.8.0_xxx/bin/java -version
如果报错:
如果你在 systemd 服务里跑 Java:
Environment=JAVA_HOME=/usr/java/jdk1.8.0_xxx
或在 /etc/systemd/system/xxx.service 中配置
echo $JAVA_HOME
which java
java -version
ls $JAVA_HOME/bin/java
如果你愿意,可以把:
发出来,我可以直接帮你定位是哪一步出了问题。