温馨提示×

Centos怎么切换Java编译版本

小樊
39
2026-08-30 20:28:23
栏目: 编程语言

在 CentOS 上切换 Java 编译版本(JDK 版本),常见做法有 三种
alternatives(推荐)
手动配置 JAVA_HOME
SDKMAN(适合多版本频繁切换)

下面按使用频率从高到低说明。


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

1️⃣ 查看已安装的 Java

java -version

查看所有已注册 JDK:

sudo alternatives --config java

输出示例:

* 1 /usr/lib/jvm/java-1.8.0-openjdk/bin/java
  2 /usr/lib/jvm/java-17-openjdk/bin/java

输入编号即可切换。


2️⃣ 同时切换 javac

sudo alternatives --config javac

⚠️ 编译版本由 javac 决定,不只是 java


3️⃣ 查看安装路径

which java
ls -l /etc/alternatives/java

二、手动设置 JAVA_HOME(最常用)

1️⃣ 查找 JDK 路径

ls /usr/lib/jvm/

示例:

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

2️⃣ 设置 JAVA_HOME

编辑:

vi ~/.bashrc

添加(示例:切换到 JDK 17):

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

使配置生效:

source ~/.bashrc

3️⃣ 验证

java -version
javac -version
echo $JAVA_HOME

三、安装多个 JDK(如果没有)

CentOS 7 / 8

sudo yum install java-1.8.0-openjdk-devel
sudo yum install java-11-openjdk-devel
sudo yum install java-17-openjdk-devel

CentOS Stream / Rocky / Alma

sudo dnf install java-17-openjdk-devel

四、使用 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

✅ 自动处理 JAVA_HOMEPATH


五、常见问题

❓ 编译版本不对?

javac -version

确保与 java -version 一致


❓ Maven / Gradle 用错 JDK?

mvn -v

Maven 使用 JAVA_HOME


❓ 系统服务(如 Jenkins)?

需要修改:

/etc/profile
/etc/environment
systemctl set-environment

六、推荐方案总结

场景 推荐方式
服务器 alternatives + JAVA_HOME
本地开发 SDKMAN
CI / Docker 固定 JAVA_HOME

如果你愿意,可以告诉我:
✅ CentOS 版本
✅ 当前 Java 版本
✅ 是服务器还是本地开发

我可以直接给你 精确命令

0