在 CentOS 上替换(切换)默认 JDK,常见做法有三种:alternatives 管理、手动配置环境变量、卸载旧 JDK。下面按 推荐顺序 详细说明。
alternatives 切换(最推荐 ✅)这是 CentOS / RHEL 官方推荐方式,适合系统级切换。
java -version
sudo alternatives --config java
输出示例:
1 /usr/lib/jvm/java-1.8.0-openjdk/bin/java
2 /usr/lib/jvm/java-17-openjdk/bin/java
输入编号即可切换。
例如你安装了 /usr/local/jdk-17:
sudo alternatives --install /usr/bin/java java /usr/local/jdk-17/bin/java 2
sudo alternatives --install /usr/bin/javac javac /usr/local/jdk-17/bin/javac 2
然后再次执行:
sudo alternatives --config java
✅ 完成后验证:
java -version
javac -version
sudo vi /etc/profile
# 或只对当前用户
vi ~/.bashrc
export JAVA_HOME=/usr/local/jdk-17
export PATH=$JAVA_HOME/bin:$PATH
source /etc/profile
# 或
source ~/.bashrc
echo $JAVA_HOME
java -version
⚠️ 注意:
这种方式 不会修改系统 alternatives,只影响当前 shell 环境。
rpm -qa | grep java
或
rpm -qa | grep jdk
sudo yum remove java-1.8.0-openjdk*
⚠️ 不建议卸载系统依赖的 JDK,除非你确认不影响系统服务。
| 类型 | 路径 |
|---|---|
| yum 安装 | /usr/lib/jvm/ |
| 手动解压 | /usr/local/jdk-xx |
| Oracle JDK | /usr/java/jdk-xx |
| 场景 | 推荐方式 |
|---|---|
| 系统级切换 | alternatives |
| 开发环境 | 环境变量 |
| 多版本共存 | alternatives |
| 永久生效 | /etc/profile |
如果你愿意,可以告诉我:
我可以给你 精确命令。