温馨提示×

CentOS怎么安装多个Java

小樊
35
2026-08-18 09:11:41
栏目: 编程语言

CentOS 上安装多个 Java(JDK)版本并灵活切换,常见做法有 RPM/官方包安装 + alternatives手动解压 + alternatives。下面给你一套实用、推荐的做法。


一、查看当前是否已安装 Java

java -version
rpm -qa | grep java

二、方式一(推荐):使用 yum / dnf 安装多个 Java

1️⃣ 查看可用的 Java 版本

yum search java | grep openjdk

常见版本:

  • java-1.8.0-openjdk
  • java-11-openjdk
  • java-17-openjdk

2️⃣ 安装多个 Java 版本

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

✅ 可以同时存在,不会冲突


3️⃣ 查看已安装的 Java

ls /usr/lib/jvm/

示例:

java-1.8.0-openjdk
java-11-openjdk
java-17-openjdk

三、使用 alternatives 管理多个 Java(重点)

1️⃣ 添加 Java 到 alternatives

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

(路径按实际安装情况调整)


2️⃣ 切换 Java 版本

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:

3️⃣ 验证

java -version

四、同时管理 javac(编译器)

sudo alternatives --config javac

或手动添加:

sudo alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-11-openjdk/bin/javac 2

五、方式二:手动安装(适合 Oracle JDK / 指定版本)

1️⃣ 下载并解压

tar -zxvf jdk-17_linux-x64_bin.tar.gz
sudo mv jdk-17 /usr/local/

2️⃣ 注册到 alternatives

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 生效。


七、常见问题

❓ 为什么 java 和 javac 版本不一致?

  • 没配置 javac 的 alternatives
  • 或 PATH 优先级问题

❓ CentOS 7 / 8 / Stream 有区别吗?

  • CentOS 7:yum
  • CentOS 8+:dnf(兼容 yum)

八、推荐方案总结 ✅

场景 推荐方式
服务器 yum + alternatives
多项目 alternatives 切换
Oracle JDK 手动安装
临时测试 export JAVA_HOME

如果你愿意,可以告诉我:

  • ✅ CentOS 版本
  • ✅ 要安装哪些 Java(8 / 11 / 17 / 21)
  • ✅ 是否用于 Tomcat / Jenkins / Spring Boot

我可以给你精确命令

0