java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Windows上多JDK快速切换

在Windows上实现多JDK快速切换的高效方法

作者:台灯没得电辽

在现代软件开发过程中,Java作为一种广泛应用的编程语言,其不同版本之间的兼容性和功能差异使得开发者经常需要在多个JDK版本之间进行切换,这篇文章主要介绍了在Windows上实现多JDK快速切换的高效方法,需要的朋友可以参考下

前言

在 Windows 系统中管理多个 JDK 版本时,手动修改环境变量效率较低。本文介绍一种通过 .bat批处理脚本结合 JAVA_HOME 变量联动机制实现一键切换 JDK 的高效方法。觉得文章冗余,不利于快速解决问题,可将本文提供给AI总结处理,快速且高效

该方案的核心思想是:利用系统环境变量 %JAVA_HOME% 的动态指向,配合批处理脚本自动修改其值,从而快速切换不同版本的 JDK

第一步:调整环境变量顺序(关键)

为了确保 %JAVA_HOME% 能正确生效并被优先识别,必须将其路径设置为环境变量中的第一个条目。

操作步骤:

  1. 打开“环境变量编辑窗口”(可通过“此电脑 → 属性 → 高级系统设置 → 环境变量”进入)。
  2. 在“系统变量”区域找到 Path 变量,点击“编辑”。
  3. 在变量值列表中,选中包含 %JAVA_HOME%\bin 的那一行。
  4. 点击右侧的“上移 ”按钮,将它移动到第一行(建议超过 Oracle 和 VMware 的路径)。
  5. 点击“确定”保存更改。

注意:确保 %JAVA_HOME%\binPath 中最靠前的一项,否则可能无法生效。

第二步:配置版本环境变量

为了方便切换,建议预先定义两个专用的环境变量,分别对应不同的 JDK 版本。变量值这里以我本人为例,具体需根据实际修改。

创建以下系统变量:

修改原有JAVA_HOME变量:

💡 建议:后续使用脚本时,仅需修改 JAVA_HOME 指向对应的版本变量即可,无需重复配置完整路径。

第三步:编写一键切换脚本

为了实现“快速切换”,我们创建两个 .bat 批处理文件,分别用于切换到 JDK 8 和 JDK 21。由于执行脚本每次需要右键选择管理员权限执行,所以添加了提权命令,实际只需要两三行代码。

1. 创建jdk8.bat—— 切换至 JDK 8

操作步骤:

  1. 在桌面或任意文件夹中新建一个文本文档。
  2. 复制下方代码粘贴进去。
  3. 保存文件并重命名为 jdk8.bat
@echo off
:: ========================================================
:: 自动获取管理员权限
:: ========================================================
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if "%errorlevel%" NEQ "0" (
    echo 正在请求管理员权限...
    goto UACPrompt
) else ( goto gotAdmin )
 
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
 
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
pushd "%~dp0"
cd /d "%~dp0"
 
:: ========================================================
:: 执行 JDK 切换逻辑
:: ========================================================
echo -------------------------------
echo 正在切换系统环境变量 JAVA_HOME 为 JDK 8
echo -------------------------------
 
:: 使用 setx 修改系统级环境变量(/M 表示系统级别)
:: 注意:假设你已定义名为 JAVA_HOME8 的变量
setx JAVA_HOME "%JAVA_HOME8%" /M
 
echo.
if %errorlevel% EQU 0 (
    echo [成功] 已成功切换到 JDK 8。
) else (
    echo [失败] 请检查是否已定义环境变量 JAVA_HOME8。
)
 
echo.
echo 注意:更改已生效,但当前窗口不会更新,请重新打开命令行窗口。
pause

2. 创建jdk21.bat—— 切换至 JDK 21

操作步骤:

  1. 同样新建一个文本文件。
  2. 粘贴以下代码。
  3. 保存为 jdk21.bat
@echo off
:: ========================================================
:: 1. 自动获取管理员权限
:: ========================================================
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if "%errorlevel%" NEQ "0" (
    echo 正在请求管理员权限...
    goto UACPrompt
) else ( goto gotAdmin )
 
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
 
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
pushd "%~dp0"
cd /d "%~dp0"
 
:: ========================================================
:: 2. 执行 JDK 21 切换逻辑
:: ========================================================
echo -------------------------------
echo 正在切换系统环境变量 JAVA_HOME 为 JDK 21
echo -------------------------------
 
:: 修改系统级环境变量
setx JAVA_HOME "%JAVA_HOME21%" /M
 
echo.
if %errorlevel% EQU 0 (
    echo [成功] 已成功切换到 JDK 21。
) else (
    echo [错误] 切换失败!请确保你已经手动创建了名为 JAVA_HOME21 的变量。
)
 
echo.
echo 注意:配置已完成。请关闭所有已打开的终端(CMD/PowerShell/IDE),
echo 然后重新打开以使环境变量生效。
echo.
pause

使用说明

  1. 运行脚本

    • 双击 jdk8.batjdk21.bat 即可执行切换。
    • 系统会自动请求管理员权限(必要时弹出 UAC 提示)。
  2. 生效范围

    • 修改的是系统级环境变量,全局生效。
    • 当前命令行窗口不会立即反映变更,需重启终端才能加载新配置。
  3. 验证方式

    • 打开新的 CMD 或 PowerShell,输入:
      echo %JAVA_HOME%
      java -version
      
    • 查看输出是否符合预期。

注意事项

总结

本方案通过以下方式实现了高效、稳定的多 JDK 切换:

💡 推荐将这两个 .bat 文件放在固定目录(如 D:\JDK\Switcher),方便日常调用。

✅ 完成以上步骤后,即可轻松实现 JDK 版本的一键切换,大幅提升开发效率。

到此这篇关于在Windows上实现多JDK快速切换的高效方法的文章就介绍到这了,更多相关Windows上多JDK快速切换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文