在 CentOS 上替换系统默认 JDK,通常有两种常见方式:
使用 alternatives(推荐) 或 直接修改环境变量。下面按步骤说明。
java -version
查看已安装的 JDK:
rpm -qa | grep java
# 或
rpm -qa | grep jdk
sudo yum install -y java-1.8.0-openjdk-devel
# 或 JDK 11
sudo yum install -y java-11-openjdk-devel
tar -zxvf jdk-8u361-linux-x64.tar.gz -C /usr/local/
假设路径为:
/usr/local/jdk1.8.0_361
sudo alternatives --install /usr/bin/java java /usr/local/jdk1.8.0_361/bin/java 1
sudo alternatives --install /usr/bin/javac javac /usr/local/jdk1.8.0_361/bin/javac 1
如果是 yum 安装的 JDK,路径一般在:
/usr/lib/jvm/java-1.8.0-openjdk/bin/java
sudo alternatives --config java
输出示例:
There are 2 programs which provide 'java'.
Selection Command
-----------------------------------------------
*+ 1 /usr/lib/jvm/java-1.7.0-openjdk/bin/java
2 /usr/local/jdk1.8.0_361/bin/java
Enter to keep the current selection[+], or type selection number: 2
选择你需要的 JDK 编号即可。
同样切换 javac:
sudo alternatives --config javac
java -version
javac -version
编辑环境变量:
sudo vi /etc/profile
追加:
export JAVA_HOME=/usr/local/jdk1.8.0_361
export PATH=$JAVA_HOME/bin:$PATH
生效:
source /etc/profile
验证:
echo $JAVA_HOME
⚠️ 谨慎操作,避免破坏系统组件
rpm -qa | grep java
sudo yum remove java-1.7.0-openjdk
yum、firewalld、一些系统工具 依赖系统 JDK✅ alternatives + /etc/profile
❌ 不要只改个人 ~/.bashrc
✅ 最佳实践
alternatives 切换 java / javac
/etc/profile 配置 JAVA_HOME
不删除系统自带 JDK
如果你愿意,可以告诉我:
我可以给你一套 完全适配你系统的命令。