在 CentOS 上遇到 Java 配置冲突,通常是指:
JAVA_HOME 和 PATH 不一致下面按最常见场景一步步解决。
java -version
which java
echo $JAVA_HOME
再看系统里有哪些 Java:
ls /usr/lib/jvm/
或:
rpm -qa | grep java
CentOS 一般用 alternatives 解决多版本冲突。
假设你有两个:
sudo alternatives --install /usr/bin/java java /usr/lib/jvm/java-1.8.0-openjdk/bin/java 1
sudo alternatives --install /usr/bin/java java /usr/java/jdk1.8.0_201/bin/java 2
sudo alternatives --config java
按提示选择你要的版本。
同样配置 javac:
sudo alternatives --install /usr/bin/javac javac /usr/java/jdk1.8.0_201/bin/javac 2
sudo alternatives --config javac
编辑环境变量:
sudo vi /etc/profile.d/java.sh
内容示例(按你实际路径改):
export JAVA_HOME=/usr/java/jdk1.8.0_201
export PATH=$JAVA_HOME/bin:$PATH
生效:
source /etc/profile
验证:
echo $JAVA_HOME
java -version
如果不用系统 OpenJDK:
sudo yum remove java-1.8.0-openjdk*
⚠️ 注意:
java-1.8.0-openjdk-headlessmvn -version
确保:
JAVA_HOME=/usr/java/jdk1.8.0_201
catalina.sh 或 setenv.sh 里指定:
export JAVA_HOME=/usr/java/jdk1.8.0_201
java -version 和 javac -version 一致JAVA_HOME 指向你想要的 JDKPATH 中 $JAVA_HOME/bin 在最前面java 在 /usr/bin 和 /opt 混用你可以直接贴出:
java -version
which java
echo $JAVA_HOME
ls /usr/lib/jvm
我可以帮你精准定位是哪一种冲突并给出对应命令。