在 CentOS 上替换(切换/升级)Java 环境,常见做法有 RPM/ yum 安装替换、手动安装 JDK 并切换、以及 使用 alternatives 管理多个 Java。下面按场景给你一套完整、常用的方法。
java -version
查看所有已安装的 Java:
rpm -qa | grep java
# 或
alternatives --config java
yum list available | grep java-1
常见版本:
java-1.8.0-openjdkjava-11-openjdkjava-17-openjdk例如安装 Java 8:
sudo yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
安装 Java 11:
sudo yum install -y java-11-openjdk java-11-openjdk-devel
sudo alternatives --config java
输出示例:
1 /usr/lib/jvm/java-1.8.0-openjdk/bin/java
2 /usr/lib/jvm/java-11-openjdk/bin/java
输入编号回车即可。
同样切换 javac:
sudo alternatives --config javac
例如:
解压:
tar -zxvf jdk-17.0.9_linux-x64_bin.tar.gz
sudo mv jdk-17.0.9 /usr/local/java17
编辑:
sudo vi /etc/profile.d/java.sh
内容:
export JAVA_HOME=/usr/local/java17
export PATH=$JAVA_HOME/bin:$PATH
生效:
source /etc/profile
验证:
java -version
sudo alternatives --install /usr/bin/java java /usr/local/java17/bin/java 3
sudo alternatives --install /usr/bin/javac javac /usr/local/java17/bin/javac 3
sudo alternatives --config java
sudo yum remove java-1.7.0-openjdk*
或手动删除:
rm -rf /usr/local/java旧目录
并清理环境变量。
java -version 还是旧版本?检查:
which java
echo $JAVA_HOME
可能原因:
/etc/profile 或 ~/.bashrc 中写死了旧 JAVA_HOME| 场景 | 建议 |
|---|---|
| 服务器 | 手动安装 + JAVA_HOME |
| 多版本共存 | alternatives |
| 开发环境 | OpenJDK + alternatives |
| 生产环境 | 固定 JDK + 不频繁切换 |
如果你愿意,可以告诉我:
我可以给你 精确到命令级别 的方案。