当前位置: 首页 > article >正文

Win11切换JDK版本批处理脚本

维护的老项目jdk1.8,新项目开发采用jdk21,所以寻找类似nvm的软件,都不太满意,最后还是决定采用写一个脚本算了,先不折腾了。

1、创建switch_jdk.bat文件

2、把如下内容复制进行

@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion:: 请求管理员权限
fltmc >nul 2>&1 || (echo 正在请求管理员权限...powershell -Command "Start-Process '%~s0' -Verb RunAs"exit /b
):: JDK安装目录
set "JDK_DIR=C:\Program Files\Java":: 显示菜单
echo 可用的JDK版本:
echo 1. jdk1.8.0_301
echo 2. jdk-17.0.12
echo 3. jdk-21.0.7
echo 4. jdk-22.0.2
echo.:: 获取用户选择
set /p choice="请选择JDK版本 (输入数字 1-4): ":: 根据选择设置路径
if "%choice%"=="1" set "NEW_HOME=%JDK_DIR%\jdk1.8.0_301"
if "%choice%"=="2" set "NEW_HOME=%JDK_DIR%\jdk-17.0.12"
if "%choice%"=="3" set "NEW_HOME=%JDK_DIR%\jdk-21.0.7"
if "%choice%"=="4" set "NEW_HOME=%JDK_DIR%\jdk-22.0.2":: 检查是否有效选择
if not defined NEW_HOME (echo 无效选择pauseexit /b 1
):: 检查JDK目录是否存在
if not exist "%NEW_HOME%" (echo 错误: JDK目录不存在echo %NEW_HOME%pauseexit /b 1
):: 更新系统JAVA_HOME变量
setx JAVA_HOME "%NEW_HOME%" /M
echo 已永久更新系统变量 JAVA_HOME = %NEW_HOME%echo.
echo JDK已成功切换到版本 %choice%
echo 注意: 请关闭并重新打开终端以使更改完全生效
echo       当前会话可能仍显示旧版本信息
pause

注意:需要把软件目录改成实际软件目录

3、管理员权限运行脚本

结果:
1、jdk切换成功;
2、CMD输出中文显示正常

前提:
1、Win11环境变量需要建好JAVA_HOME环境变量(定义变量)
2、Path中需要加入%JAVA_HOME%(使用变量)

定义变量
JAVA_HOME使用变量
%JAVA_HOME%
http://www.lryc.cn/news/2392794.html

相关文章:

  • 爬虫学习-Scrape Center spa6 超简单 JS 逆向
  • 对数的运算困惑
  • C++ 图像处理库 CxImage 简介 (迁移至OpenCV)
  • linux系统与shell 笔记
  • 尚硅谷redis7 86 redis集群分片之3主3从集群搭建
  • Kaggle-Predict Calorie Expenditure-(回归+xgb+cat+lgb+模型融合+预测结果)
  • 【解决办法】Git报错error: src refspec main does not match any.
  • React与Vue的内置指令对比
  • 2025年5月24号高项综合知识真题以及答案解析(第1批次)
  • 【NATURE氮化镓】GaN超晶格多沟道场效应晶体管的“闩锁效应”
  • Ubuntu24.04换源方法(新版源更换方式,包含Arm64)
  • 26 C 语言函数深度解析:定义与调用、返回值要点、参数机制(值传递)、原型声明、文档注释
  • 彻底理解一个知识点的具体步骤
  • FFmpeg 时间戳回绕处理:保障流媒体时间连续性的核心机制
  • yolov8改进模型
  • PostgreSQL日常运维
  • << C程序设计语言第2版 >> 练习 1-23 删除C语言程序中所有的注释语句
  • Fluence (FLT) 2026愿景:RWA代币化加速布局AI算力市场
  • 如何撰写一篇优质 Python 相关的技术文档 进阶指南
  • 选择if day5
  • MiniMax V-Triune让强化学习(RL)既擅长推理也精通视觉感知
  • Hash 的工程优势: port range 匹配
  • 同为.net/C#的跨平台运行时的mono和.net Core有什么区别?
  • 前端安全直传MinIO方案
  • HackMyVM-Dejavu
  • LeetCode Hot100(动态规划)
  • Opencv实用操作5 图像腐蚀膨胀
  • 【赵渝强老师】OceanBase的部署架构
  • (18)混合云架构部署
  • c/c++的opencv霍夫变换