在 CentOS 上设置 JAVA_HOME,一般分为 临时设置 和 永久设置 两种情况。下面按常见场景一步步说明。
java -version
如果未安装,可先安装(示例:OpenJDK 8):
sudo yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel -y
建议使用 devel 版本,否则可能没有
javac和JAVA_HOME相关目录。
readlink -f $(which java)
输出类似:
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.392.b08-2.el7_9.x86_64/jre/bin/java
那么 JAVA_HOME 通常是:
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.392.b08-2.el7_9.x86_64
rpm -ql java-1.8.0-openjdk | grep bin
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH
验证:
echo $JAVA_HOME
java -version
⚠️ 重启或新开终端后会失效。
编辑用户环境变量:
vi ~/.bashrc
在文件末尾添加:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH
使配置生效:
source ~/.bashrc
sudo vi /etc/profile
添加:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH
生效:
source /etc/profile
如果系统使用 alternatives:
sudo alternatives --config java
然后:
export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which java))))
echo $JAVA_HOME
java -version
javac -version
JAVA_HOME 指向 jre 目录?❌ 不推荐
✅ 应指向 JDK 根目录
JAVA_HOME重启服务或重新登录会话。
如果你愿意,可以告诉我:
我可以给你 更精确的配置方案。