Ubuntu 多版本 OpenJDK 共存与切换使用完全指南

5次阅读
没有评论

Java 开发中,我们经常会遇到多项目兼容的场景:老项目依赖 Java 8,新项目使用 Java 17/21。Ubuntu 系统支持同时安装多个 OpenJDK 版本,无需卸载旧版本,通过系统自带工具就能一键切换默认 JDK,完美解决版本冲突问题。

本文手把手教你:在 Ubuntu 上安装多个 OpenJDK → 切换默认版本 → 配置环境变量 → 卸载冗余版本,新手也能轻松上手!


一、前置检查:查看已安装的 JDK

首先检查系统当前的 JDK 状态,确认是否已安装过 OpenJDK:

1. 查看当前默认 JDK 版本

bash

运行

java -version

2. 列出所有已安装的 OpenJDK 包

bash

运行

dpkg -l | grep openjdk

如果输出为空,说明系统未安装任何 JDK,直接跳转到第二步安装即可。


二、安装多个 OpenJDK 版本

我们以最常用的 OpenJDK 8OpenJDK 17 为例,执行命令一键安装:

1. 更新软件

bash

运行

sudo apt update

2. 安装多版本 JDK

bash

运行

# 安装 Java 8 和 Java 17 完整开发包(包含编译器 javac)
sudo apt install openjdk-8-jdk openjdk-17-jdk -y

✅ 小贴士:推荐安装 jdk 而非 jrejdk 包含编译、运行全套工具,满足开发需求。

安装完成后,系统会自动将两个 JDK 注册到版本管理工具中。


三、核心操作:一键切换默认 JDK

Ubuntu 自带 update-alternatives 工具,专门用于管理系统中同一软件的多版本,无需手动修改环境变量,这是切换 JDK 最便捷的方式!

1. 切换 Java 运行时版本

执行以下命令,系统会列出所有已安装的 JDK:

bash

运行

sudo update-alternatives --config java

命令输出示例:

plaintext

有 2 个候选项可用于替换 java (提供 /usr/bin/java)。

  选择       路径                                          优先级  状态
------------------------------------------------------------
* 0            /usr/lib/jvm/java-17-openjdk-amd64/bin/java   1711      自动模式
  1            /usr/lib/jvm/java-17-openjdk-amd64/bin/java   1711      手动模式
  2            /usr/lib/jvm/java-8-openjdk-amd64/bin/java    1081      手动模式

要维持当前值[*],请按<回车键>,或者输入选择的编号:

切换方法:

输入你想设置为默认的 JDK 序号(比如输入 2 切换为 Java 8),按回车即可。

2. 必须切换:Java 编译器版本

java 是运行命令,javac 是编译命令,两个都要切换,否则会出现「运行新版本、编译旧版本」的问题:

bash

运行

sudo update-alternatives --config javac

操作方式和上面完全一致!


四、验证切换结果

切换完成后,执行命令检查版本是否一致:

bash

运行

# 查看运行时版本
java -version
# 查看编译器版本
javac -version

如果两个命令输出的版本号相同,说明切换成功!🎉


五、进阶配置:设置 JAVA_HOME 环境变量

大部分 Java 框架(Maven、Tomcat、SpringBoot)都依赖 JAVA_HOME 环境变量,我们需要手动配置。

1. 查看 JDK 安装路径

执行命令获取所有 JDK 的实际路径:

bash

运行

update-alternatives --list java

输出示例:

plaintext

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

JAVA_HOME 路径 = 去掉末尾 /bin/java 的部分:

  • Java 8:/usr/lib/jvm/java-8-openjdk-amd64
  • Java 17:/usr/lib/jvm/java-17-openjdk-amd64

2. 配置环境变量(用户级,推荐)

仅对当前用户生效,安全无风险:

bash

运行

# 编辑用户配置文件
nano ~/.bashrc

在文件末尾添加以下内容(以 Java 8 为例):

bash

运行

# 配置 JAVA_HOME
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
# 将 JDK 命令加入系统 PATH
export PATH=$JAVA_HOME/bin:$PATH

Ctrl+O 保存,Ctrl+X 退出,执行命令生效:

bash

运行

source ~/.bashrc

3. 验证 JAVA_HOME

bash

运行

echo $JAVA_HOME

输出你配置的路径,说明生效成功!


六、卸载不需要的 JDK 版本

如果某个 JDK 不再使用,直接卸载即可,系统会自动更新版本配置:

bash

运行

# 卸载 OpenJDK 8(替换为你要卸载的版本)
sudo apt remove openjdk-8-jdk -y

七、常见问题排查

1. 切换后版本没有变化?

  • 重新打开终端,再执行 java -version 检查;
  • 如果配置了环境变量,重新执行 source ~/.bashrc

2. javac 和 java 版本不一致?

忘记切换编译器!重新执行:

bash

运行

sudo update-alternatives --config javac

3. JAVA_HOME 不生效?

检查路径是否正确,绝对不能包含 /bin/java,重新编辑配置文件并生效。


总结

Ubuntu 管理多版本 OpenJDK 超简单,核心就 3 步:

  1. apt install 安装多个 JDK;
  2. update-alternatives --config java/javac 一键切换;
  3. 配置 JAVA_HOME 适配开发框架。

这套方法适用于所有 Ubuntu 版本(20.04/22.04/24.04),彻底解决多项目 JDK 版本冲突问题!

正文完
可以使用微信扫码关注公众号(ID:xzluomor)
post-qrcode
 0
评论(没有评论)
验证码