温馨提示×

CentOS怎么配置多版本Java

小樊
63
2026-08-29 14:59:40
栏目: 编程语言

CentOS 上配置 多版本 Java 的常见做法有两种,推荐方式:使用 alternatives(系统级) + 手动配置 JAVA_HOME。下面我按 生产环境常用方案 给你讲清楚。


一、准备工作:确认系统环境

cat /etc/centos-release
java -version

如果已安装 Java,先查看:

rpm -qa | grep java

二、安装多个 Java 版本(示例)

方式 1:使用 yum(推荐)

CentOS 7 / 8 / Stream 都支持:

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

安装后路径一般在:

/usr/lib/jvm/

方式 2:手动安装(Oracle / 自定义版本)

比如下载 jdk-17

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

路径示例:

/usr/local/jdk-17

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

1️⃣ 添加 Java 到 alternatives

sudo alternatives --install /usr/bin/java java /usr/lib/jvm/java-1.8.0-openjdk/bin/java 1800
sudo alternatives --install /usr/bin/java java /usr/lib/jvm/java-11-openjdk/bin/java 1100
sudo alternatives --install /usr/bin/java java /usr/lib/jvm/java-17-openjdk/bin/java 1700

如果是手动安装:

sudo alternatives --install /usr/bin/java java /usr/local/jdk-17/bin/java 1700

2️⃣ 切换默认 Java 版本

sudo alternatives --config 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

输入编号回车即可。

验证:

java -version

四、配置 JAVA_HOME(非常重要)

1️⃣ 查找真实路径

readlink -f $(which java)

示例输出:

/usr/lib/jvm/java-17-openjdk/bin/java

JAVA_HOME 应为:

/usr/lib/jvm/java-17-openjdk

2️⃣ 全局配置(推荐)

编辑:

sudo vi /etc/profile.d/java.sh

内容:

export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
export PATH=$JAVA_HOME/bin:$PATH

生效:

source /etc/profile

3️⃣ 用户级配置(可选)

vi ~/.bashrc
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
export PATH=$JAVA_HOME/bin:$PATH

五、为不同项目指定不同 Java(常见场景)

✅ 方案 1:在启动脚本中指定

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
$JAVA_HOME/bin/java -jar app.jar

✅ 方案 2:Spring Boot 指定 Java

JAVA_HOME=/usr/lib/jvm/java-17-openjdk java -jar app.jar

六、验证多版本是否配置成功

java -version
echo $JAVA_HOME
which java

切换版本后再验证一次即可。


七、常见问题

❓ 切换了 java,JAVA_HOME 没变?

alternatives 只管 java 命令JAVA_HOME 必须单独配置


❓ CentOS 8 / Stream 没有 openjdk?

sudo dnf install java-17-openjdk

八、推荐最佳实践 ✅

场景 推荐
系统默认 一个稳定版本
多项目 启动脚本指定 JAVA_HOME
生产环境 不用 Oracle,用 OpenJDK
自动化 用 /etc/profile.d/java.sh

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

  • ✅ CentOS 版本(7 / 8 / Stream)
  • ✅ 需要哪些 Java 版本
  • ✅ 是服务器还是本地开发

我可以 直接给你一套可复制的完整配置命令

0