在 CentOS 上安装多个 Java(JDK)版本并灵活切换,常见做法有 RPM/官方包安装 + alternatives 或 手动解压 + alternatives。下面给你一套实用、推荐的做法。
java -version
rpm -qa | grep java
yum search java | grep openjdk
常见版本:
sudo yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
sudo yum install -y java-11-openjdk java-11-openjdk-devel
sudo yum install -y java-17-openjdk java-17-openjdk-devel
✅ 可以同时存在,不会冲突
ls /usr/lib/jvm/
示例:
java-1.8.0-openjdk
java-11-openjdk
java-17-openjdk
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/lib/jvm/java-11-openjdk/bin/java 2
sudo alternatives --install /usr/bin/java java /usr/lib/jvm/java-17-openjdk/bin/java 3
(路径按实际安装情况调整)
sudo alternatives --config java
示例输出:
There are 3 programs that provide 'java'.
Selection Command
-----------------------------------------------
1 /usr/lib/jvm/java-1.8.0-openjdk/bin/java
* 2 /usr/lib/jvm/java-11-openjdk/bin/java
3 /usr/lib/jvm/java-17-openjdk/bin/java
Enter to keep current selection[+], or type selection number:
java -version
sudo alternatives --config javac
或手动添加:
sudo alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-11-openjdk/bin/javac 2
tar -zxvf jdk-17_linux-x64_bin.tar.gz
sudo mv jdk-17 /usr/local/
sudo alternatives --install /usr/bin/java java /usr/local/jdk-17/bin/java 10
sudo alternatives --install /usr/bin/javac javac /usr/local/jdk-17/bin/javac 10
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
export PATH=$JAVA_HOME/bin:$PATH
只对当前 shell 生效。
javac 的 alternativesyumdnf(兼容 yum)| 场景 | 推荐方式 |
|---|---|
| 服务器 | yum + alternatives |
| 多项目 | alternatives 切换 |
| Oracle JDK | 手动安装 |
| 临时测试 | export JAVA_HOME |
如果你愿意,可以告诉我:
我可以给你精确命令。