温馨提示×

CentOS Java版本怎么切换

小樊
41
2026-08-18 11:51:46
栏目: 编程语言

CentOS 上切换 Java 版本,常见有三种方式,最推荐的是使用 alternatives(系统级切换)。下面按常用场景给你完整说明。


一、查看当前 Java 版本

java -version

二、查看系统中已安装的 Java

rpm -qa | grep java

ls /usr/lib/jvm/

常见路径:

  • /usr/lib/jvm/java-1.8.0-openjdk
  • /usr/lib/jvm/java-11-openjdk
  • /usr/lib/jvm/java-17-openjdk

三、使用 alternatives 切换 Java(✅ 推荐)

1️⃣ 查看当前 Java 可选版本

sudo alternatives --config java

输出示例:

There are 3 programs which provide 'java'.

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

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

输入数字即可切换。


2️⃣ 同时切换 javac(非常重要)

sudo alternatives --config javac

⚠️ 只切换 java 不切换 javac,编译和运行版本可能不一致。


3️⃣ 验证

java -version
javac -version

四、手动添加 Java 到 alternatives(如果没显示)

例如你手动安装了 JDK:

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

数字 3 是优先级(越大越优先)。


五、临时切换(只对当前终端有效)

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

验证:

java -version

关闭终端后失效。


六、永久切换(用户级)

1️⃣ 编辑环境变量

vi ~/.bashrc

2️⃣ 添加或修改

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

3️⃣ 生效

source ~/.bashrc

七、系统全局设置(不推荐新手)

sudo vi /etc/profile

添加:

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

然后:

source /etc/profile

八、常见问题

❓ 切换后版本没变?

  • 是否同时切换了 javajavac
  • 是否被 JAVA_HOME 覆盖
  • 是否使用了 sudo 不同环境

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

  • CentOS 7/8:alternatives
  • CentOS 6:较老,建议升级或使用手动方式

九、推荐方案总结

场景 推荐方式
系统级切换 alternatives
临时测试 export JAVA_HOME
多用户 /etc/profile
单用户 ~/.bashrc

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

  • ✅ CentOS 版本(6/7/8/Stream)
  • ✅ OpenJDK 还是 Oracle JDK
  • ✅ 是否用于 Tomcat / Jenkins / Hadoop

我可以给你 精确到命令级别 的方案。

0