18人参与 • 2026-09-15 • Windows
在windows环境下,多版本 java 开发场景中,频繁手动修改 java_home 和 path 环境变量,不仅操作繁琐,还容易因配置错误导致版本冲突。本文将带你搭建一套「永久配置 + 双击切换」的高效方案,无需依赖第三方工具,全程无卡顿、无乱码,新手也能一次配置终身使用。
✅ 无需安装第三方工具(如 jvman、sdkman! 等),原生系统支持✅ 一键切换 jdk 8/17/21 等多版本,全程 1 秒完成✅ 彻底解决乱码、脚本卡顿、版本不生效等常见问题✅ 不修改系统核心配置,兼容所有 windows 10/11 版本
首先确保你的电脑上已经安装了需要切换的 jdk 版本(以 jdk 8 和 jdk 17 为例),并记录它们的真实安装路径:
jdk 8 路径示例:c:\program files\java\jdk1.8.0_101
jdk 17 路径示例:c:\program files\java\jdk-17
如图,配置好这三个变量

说明:这两个变量是固定不变的,脚本切换时只会修改 java_home,不会触碰它们,避免配置混乱

找到「系统变量」中的 path,双击打开,点击「新建」,添加 %java_home%\bin
选中刚添加的 %java_home%\bin,点击右侧「上移」按钮,将它移动到 path 列表的最顶部
关键:将 %java_home%\bin 移到最顶部,是确保切换后命令行优先读取正确版本的核心步骤,避免被其他旧 java 路径覆盖。
在桌面新建一个文本文件,命名为 jdk版本切换工具.bat(注意后缀必须是 .bat,不能是 .txt)
将以下代码完整复制到文件中并保存:
@echo off
:: 强制utf-8编码,避免乱码
chcp 65001 > nul
:: 自动请求管理员权限(精简版)
fltmc >nul 2>&1 || (
powershell -command "start-process cmd -argumentlist '/c ""%~f0""' -verb runas"
exit
)
:menu
cls
echo ======================================
echo jdk version switcher
echo ======================================
echo 1. switch to jdk 8
echo 2. switch to jdk 17
echo 3. exit
echo ======================================
set /p choice=please select (1/2/3):
if "%choice%"=="1" goto jdk8
if "%choice%"=="2" goto jdk17
if "%choice%"=="3" exit /b
echo invalid input. press any key to retry...
pause >nul
goto menu
:jdk8
echo switching to jdk 8...
setx java_home "%%java8_home%%" /m >nul
echo done. please restart your terminal/ide.
pause >nul
goto menu
:jdk17
echo switching to jdk 17...
setx java_home "%%java17_home%%" /m >nul
echo done. please restart your terminal/ide.
pause >nul
goto menu直接双击 jdk版本切换工具.bat,根据提示输入数字(1/2/3)即可完成切换。

切换完成后,必须关闭所有旧的 cmd/powershell/ide 窗口,重新打开新的终端,执行以下命令验证:
# 验证当前 java 版本 java -version # 验证 java_home 变量是否正确 echo %java_home%
path 中 %java_home%\bin 已移到列表最顶部.bat 文件,点击「文件」→「另存为」,将右下角的「编码」改为 ansi,保存后重新运行即可。setx /m 会修改系统注册表,部分 windows 环境会出现权限校验延迟。/m 参数,无需管理员权限,执行无卡顿。如果需要切换 jdk 21 等其他版本,只需两步即可扩展:
在「环境变量」中新建 java21_home 变量,值为 jdk 21 的安装路径
修改脚本,添加对应选项:
echo 3. 切换到 jdk 21 echo 4. 退出工具 set /p choice=请输入选择(1/2/3/4): if "%choice%"=="3" goto jdk21 if "%choice%"=="4" exit /b :jdk21 echo 正在切换到 jdk 21... setx java_home "%java21_home%" >nul echo 已切换完成! pause >nul goto menu
这套方案配置一次即可永久使用,彻底告别手动修改环境变量的麻烦,非常适合多版本 java 开发的场景。如果需要支持更多版本或优化脚本功能,可以根据自己的需求调整代码~
到此这篇关于windows环境下一键切换jdk版本的文章就介绍到这了,更多相关windows一键切换jdk版本内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论