温馨提示×

CentOS怎么切换Java版本

小樊
43
2026-08-18 08:38:42
栏目: 编程语言

在 CentOS 上切换 Java 版本,常见做法有 alternatives(推荐)、手动配置 JAVA_HOMEPATH,以及使用 SDKMan。下面按最常用到最灵活的顺序说明。


一、使用 alternatives 切换(CentOS 推荐 ✅)

1️⃣ 查看已安装的 Java

java -version

查看系统中已注册的 Java:

sudo alternatives --config java

输出示例:

There are 2 programs that provide 'java'.

  Selection    Command
-----------------------------------------------
*+ 1           /usr/lib/jvm/java-1.8.0-openjdk/jre/bin/java
   2           /usr/lib/jvm/java-17-openjdk/bin/java

Enter to keep the current selection[+], or type selection number:

输入数字即可切换。


2️⃣ 如果新 Java 没出现在列表里(手动注册)

例如你手动安装了 /usr/local/jdk-17

sudo alternatives --install /usr/bin/java java /usr/local/jdk-17/bin/java 3
sudo alternatives --install /usr/bin/javac javac /usr/local/jdk-17/bin/javac 3

然后:

sudo alternatives --config java
sudo alternatives --config javac

3️⃣ 验证

java -version
javac -version

二、通过 JAVA_HOME 切换(适合开发环境)

1️⃣ 编辑环境变量

vi ~/.bashrc

添加或修改:

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

2️⃣ 生效

source ~/.bashrc

3️⃣ 验证

echo $JAVA_HOME
java -version

✅ 适合 单用户 / 开发环境


三、使用 SDKMan(适合多版本频繁切换 ⭐⭐⭐)

1️⃣ 安装 SDKMan

curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"

2️⃣ 安装 Java

sdk list java
sdk install java 17.0.9-open
sdk install java 8.0.392-open

3️⃣ 切换版本

sdk default java 17.0.9-open
sdk use java 8.0.392-open

✅ 适合 开发 / 多版本共存


四、CentOS 7 / 8 常见路径参考

类型 路径
OpenJDK 8 /usr/lib/jvm/java-1.8.0-openjdk
OpenJDK 11 /usr/lib/jvm/java-11-openjdk
OpenJDK 17 /usr/lib/jvm/java-17-openjdk

五、常见问题

❓ 切换后 java -version 没变?

  • 检查 PATH 顺序
  • 是否 source ~/.bashrc
  • 是否被 /etc/profile 覆盖

❓ 系统服务(如 Jenkins / Tomcat)不生效?

  • 服务一般读取 /etc/profile.d/*.sh
  • 或直接在服务配置中指定 JAVA_HOME

✅ 推荐方案总结

场景 推荐方式
系统级切换 alternatives
开发环境 JAVA_HOME
多版本频繁切换 SDKMan

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

  • ✅ CentOS 7 还是 8 / Stream?
  • ✅ 是系统服务还是开发环境?
  • ✅ 想从 Java 8 切到几?

我可以给你 精确命令

0