Windows 下 JDK 多版本共存 + 自动切换
- 1. 下载并安装多版本JDK
- 2. 配置基础环境变量
- 3. 自动切换脚本
- 4. 给不同软件指定独立 JDK
- 5. 验证切换是否成功
该教程支持 JDK 8/11/17 任意版本,切换时不用手动改环境变量,也不影响其他软件。
1. 下载并安装多版本JDK
推荐下载地址(Adoptium Temurin,免费开源无版权)
JDK 8:jdk-8u491-windows-x64.exe
链接: jdk-8u491-windows-x64.exe
提取码: xbxh
JDK 11:jdk-11.0.31_windows-x64_bin.exe
链接: jdk-11.0.31_windows-x64_bin.exe
提取码: xbxh
安装JDK
jdk 1.8:jdk 1.8下载安装教程
jdk 11:
安装路径规范
所有版本安装到同一个父目录下,方便管理:
D:\Java ├── jdk1.8.0_422 ← JDK8├── jdk-11.0.24+8 ← JDK112. 配置基础环境变量
按 Win + R → 输入 sysdm.cpl → 【高级】→【环境变量】,在系统变量中配置:
- 新建各版本变量
| 变量名 | 变量值(示例) |
|---|---|
| JAVA8_HOME | C:\Program Files\Java\jdk1.8.0_422 |
| JAVA11_HOME | C:\Program Files\Java\jdk-11.0.24+8 |
- 配置统一的 JAVA_HOME 和 Path
新建系统变量 JAVA_HOME,值先设为 %JAVA11_HOME%(默认用 JDK 11)
编辑 Path 变量,添加:%JAVA_HOME%\bin
JDK 11安装JRE
如果需要独立 JRE,用 jlink 生成
- 打开 cmd,进入你的 JDK 11 目录:
cd D:\Java\jdk11- 执行 jlink 命令生成一个完整的 JRE:
jlink --module-path "D:\Java\jdk11\jmods" --add-modules java.se --output D:\Java\jdk11\jre
执行完成后,就会在 D:\Java\jdk11\ 下生成一个 jre 文件夹,和 Java 8 的结构一样。
3. 自动切换脚本
- 新建切换脚本
在桌面新建 3 个 .bat 文件,右键【编辑】粘贴对应代码:
切换到 JDK 8:switch_to_jdk8.bat
@echo off :: 必须以管理员身份运行ifnot"%1"=="admin"(powershell-Command"Start-Process cmd -ArgumentList '/c ""%~f0""admin'-VerbRunAs" & exit) :: 修改系统环境变量JAVA_HOME setx JAVA_HOME "%JAVA8_HOME%" /Mecho已切换到 JDK1.8echo请关闭当前所有cmd/IDE,重新打开后输入java-version验证 pause切换到 JDK 11:switch_to_jdk11.bat
@echo offifnot"%1"=="admin"(powershell-Command"Start-Process cmd -ArgumentList '/c ""%~f0""admin'-VerbRunAs" & exit) setx JAVA_HOME "%JAVA11_HOME%" /Mecho已切换到 JDK11echo请关闭当前所有cmd/IDE,重新打开后输入java-version验证 pause- 使用
- 右键脚本文件 →「以管理员身份运行」
- 脚本执行完成后,关闭所有已打开的 cmd、IDE、Jenkins 服务
- 重新打开 cmd,输入 java -version,就能看到版本切换成功了
4. 给不同软件指定独立 JDK
有些软件(比如 Jenkins、IDEA)可以直接指定 JDK 路径,不用改全局环境变量,更稳定:
1. Jenkins 指定 JDK 11
找到 Jenkins 安装目录下的 jenkins.xml,修改 标签:
<executable>C:\Program Files\Java\jdk-11.0.24+8\bin\java.exe</executable>
保存后重启 Jenkins 服务,它就会强制使用 JDK 11,不受全局 JAVA_HOME 影响.
2. IDEA 多版本配置
在 IDEA 中可以为不同项目指定 JDK:
- File → Project Structure → Project Settings → Project
- 在 Project SDK 中点击 New,分别添加你安装的 JDK 8/11/17
- 每个项目可以单独选择对应的 JDK 版本,互不影响
5. 验证切换是否成功
运行切换脚本后,关闭所有终端,重新打开 cmd
执行以下命令验证:
java-versionjavac-versionecho%JAVA_HOME%输出应和你切换的版本一致,比如切换到 JDK 11 后,会显示 openjdk version “11.0.24”。