如何使用 update-alternatives 管理多版本 Java JDK?(Windows、Mac、Ubuntu)
摘要
在实际开发中,往往会遇到既要维护老项目又要跟进新特性的场景,这就需要在一台机器上同时安装并切换多个 Java JDK 版本。本文将针对三大主流平台——Windows、macOS 和 Ubuntu,详细介绍如何安装多个 JDK,并使用各自平台上的工具来管理与切换。
- Windows:通过系统环境变量与批处理脚本实现版本切换
- macOS:利用
/usr/libexec/java_home与 jEnv 工具 - Ubuntu:深入剖析
update-alternatives原理与实战
引言
多版本 JDK 切换对于兼容性测试、生态差异适配及 CI/CD 集成至关重要。例如老项目可能依赖 Java 8,而新项目需要 Java 17;Spring Boot 2.x 与 3.x 对 Java 版本的要求也不同。本文分别展开各平台的搭建与管理方法。
Windows 平台
1.1 环境变量基础
Windows 管理可执行程序的核心是 系统路径(PATH) 与 环境变量。切换 JDK 版本,本质上就是让系统在 PATH 中优先找到对应版本的 java.exe 与 javac.exe。
1.2 安装多个 JDK
- 从 Oracle 官网或 AdoptOpenJDK 下载所需版本的 Windows 安装包(
.exe)。 - 依次安装到不同目录,如:
C:\Program Files\Java\jdk1.8.0_381C:\Program Files\Java\jdk-17.0.7
1.3 手动切换
- 打开系统环境变量:右键「此电脑」→「属性」→「高级系统设置」→「环境变量」。
- 找到 系统变量 中的
JAVA_HOME、Path:- 修改
JAVA_HOME为目标 JDK 目录。 - 在
Path里,将%JAVA_HOME%\bin放到最前面。
- 修改
- 点击「确定」,重新打开命令行窗口,即可
java -version验证。
1.4 使用批处理脚本自动切换
为避免每次手动修改环境变量,可编写简单的 .bat 脚本:
@echo off
REM 切换到 Java 8
setx JAVA_HOME "C:\Program Files\Java\jdk1.8.0_381" /M
setx PATH "%JAVA_HOME%\bin;%PATH%" /M
echo 已切换到 Java 8
- 保存为
switch-to-java8.bat,右键以管理员身份运行。 - 同理可写
switch-to-java17.bat。 - 运行后重启命令行窗口即可生效。
macOS 平台
2.1 /usr/libexec/java_home 命令
macOS 自带命令 /usr/libexec/java_home,可列出并切换已安装的 JDK 版本。


