在 CentOS 上 Java 配置不生效,常见原因和排查思路如下(按出现频率排序):
~/.bashrc / ~/.bash_profile,但用非登录 shell✅ 解决方案:
/etc/profile
/etc/profile.d/java.sh
并 source 一下
Environment=JAVA_HOME=/usr/java/jdk1.8.0_xx
Environment=PATH=$JAVA_HOME/bin:$PATH
很多人只写:
export JAVA_HOME=/usr/java/jdk1.8.0_xx
但忘了:
export PATH=$JAVA_HOME/bin:$PATH
✅ 验证:
which java
java -version
CentOS 自带 openjdk,并通过 alternatives 管理
alternatives --list | grep java
即使你配了 JAVA_HOME,java 命令仍可能指向旧版本
✅ 解决:
alternatives --config java
或:
ln -sf /usr/java/jdk1.8.0_xx/bin/java /usr/bin/java
vim /etc/profile
# 忘了执行
source /etc/profile
新开 shell 才生效
✅ 建议:
chmod -R 755 /usr/java
很多 Java 程序:
例如 Tomcat:
export JAVA_HOME=/usr/java/jdk1.8.0_xx
echo $JAVA_HOME
which java
java -version
ls -l /usr/bin/java
如果你愿意,可以把:
发出来,我可以直接帮你定位是哪一类问题。