CentOS Java版本冲突处理
一 快速定位冲突来源
which java、readlink -f $(which java)、java -version、javac -versionrpm -qa | grep -i java、yum list installed | grep -i java二 推荐处理方案 多版本共存与切换
sudo yum install java-1.8.0-openjdk-devel java-11-openjdk-develsudo alternatives --install /usr/bin/java java /usr/lib/jvm/java-1.8.0-openjdk/bin/java 1sudo alternatives --install /usr/bin/java java /usr/lib/jvm/java-11-openjdk/bin/java 2sudo alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-1.8.0-openjdk/bin/javac 1sudo alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-11-openjdk/bin/javac 2sudo alternatives --config java、sudo alternatives --config javacsudo vim /etc/profile.d/java8.sh
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdkexport PATH=$JAVA_HOME/bin:$PATHsource /etc/profile.d/java8.sh(或 java21.sh)三 只保留单一版本时的清理
sudo yum remove java-1.8.0-openjdk*(按需替换版本)rpm -qa | grep -i java 确认包名,避免误删。ls -l /usr/bin/java /etc/alternatives/javasudo alternatives --config javajava -version、javac -version 均指向目标版本。四 常见报错与修复要点
alternatives --config java 与 alternatives --config javac 同步切换;或修正 JAVA_HOME 与 PATH,确保二者来自同一 JDK。javac -source/-target 指定目标版本,或切换到合适的 JDK。yum 的 --replacefiles 参数;安装后用 alternatives 设定默认版本。五 预防与运维建议
sudo yum install yum-plugin-versionlock,然后 sudo yum versionlock add java-11-openjdk*,避免被系统更新意外改动。