快速切换jdk1.6、jdk1.7与jdk1.8的bat

时间:2021-07-26 12:49:28
  1. 新建一个bat文件把下面这段粘贴进去
  2. jdk的路径自己改成自己电脑的路径
  3. 以管理员方试运行
  4. 选择与目标JDK版本对应的菜单
  5. 完成切换
@echo OFF 
rem 修改背景/字体颜色为黑/绿
color 0A

rem 自动设置JDK环境变量,本程序不会对 [系统环境变量] 造成破环!不需要重启!!
rem 没有%%JAVA_HOME%%变量值则设置%%JAVA_HOME%%,%%CLASSPATH%%,补充%%PATH%%
rem 有%%JAVA_HOME%%变量值则设置过;会仅更新%%JAVA_HOME%%
echo + 自动设置JDK环境变量,不需要重启!!
echo + 首次使用注意:
echo + 1.自行修改31,32
echo + [当前用户环境变量]
echo + JAVA_HOME: "%JAVA_HOME%"
echo + CLASSPATH: "%CLASSPATH%"
echo + PATH: "%PATH%"

:menu
echo.
echo.
echo -----------------------------------------------------
echo + 菜单 ............................[快捷键] +
echo + 1 .设置环境变量为JDK1.6 ..............[1] +
echo + 2 .设置环境变量为JDK1.7 ..............[2] +
echo + 3 .设置环境变量为JDK1.8 ..............[3] +
echo + m .返回显示菜单 ......................[m] +
echo + q .退出...............................[q] +
echo -----------------------------------------------------
echo.
echo.

@rem 用户设置jdk路径

set java6path=C:\Program Files\Java\jdk1.6.0
set java7path=C:\Program Files\Java\jdk1.7.0
set java8path=C:\Program Files\Java\jdk1.8.0

if "%JAVA_HOME%" == "" (
echo 没有检测到%%JAVA_HOME%%
goto noJavaHome
) else (
echo 已检测到%%JAVA_HOME%%
goto hasJavaHome
)

:noJavaHome

set /p off=请输入对应的快捷键1/2/3/m/q并按回车:
if /i "%off%"=="1" goto noJavaHome_setJDK1.6
if /i "%off%"=="2" goto noJavaHome_setJDK1.7
if /i "%off%"=="3" goto noJavaHome_setJDK1.8
if /i "%off%"=="m" goto menu
if /i "%off%"=="q" exit
echo 无效输入。
goto menu

:hasJavaHome

set /p off=请输入对应的快捷键1/2/3/m/q并按回车:
if /i "%off%"=="1" goto hasJavaHome_setJDK1.6
if /i "%off%"=="2" goto hasJavaHome_setJDK1.7
if /i "%off%"=="3" goto hasJavaHome_setJDK1.8
if /i "%off%"=="m" goto menu
if /i "%off%"=="q" exit
echo 无效输入。
goto menu

:noJavaHome_setJDK1.6
echo + 1 .没有检测到%%JAVA_HOME%%;设置环境变量为JDK1.6 +
wmic ENVIRONMENT create name="JAVA_HOME",username="%UserName%",VariableValue="%java6path%"
wmic ENVIRONMENT create name="CLASSPATH",username="%UserName%",VariableValue=".;%%JAVA_HOME%%\lib\tools.jar;%%JAVA_HOME%%\lib\dt.jar;"
wmic ENVIRONMENT create name="Path",username="%UserName%",VariableValue="%%JAVA_HOME%%\bin"
echo + 设置完毕,任意键退出 +
goto anyKeyToExit
:noJavaHome_setJDK1.7
echo + 2 .没有检测到%%JAVA_HOME%%;设置环境变量为JDK1.7 +
wmic ENVIRONMENT create name="JAVA_HOME",username="%UserName%",VariableValue="%java7path%"
wmic ENVIRONMENT create name="CLASSPATH",username="%UserName%",VariableValue=".;%%JAVA_HOME%%\lib\tools.jar;%%JAVA_HOME%%\lib\dt.jar;"
wmic ENVIRONMENT create name="Path",username="%UserName%",VariableValue="%%JAVA_HOME%%\bin"
echo + 设置完毕,任意键退出 +
goto anyKeyToExit
:noJavaHome_setJDK1.8
echo + 3 .没有检测到%%JAVA_HOME%%;设置环境变量为JDk1.8 +
wmic ENVIRONMENT create name="JAVA_HOME",username="%UserName%",VariableValue="%java8path%"
wmic ENVIRONMENT create name="CLASSPATH",username="%UserName%",VariableValue=".;%%JAVA_HOME%%\lib\tools.jar;%%JAVA_HOME%%\lib\dt.jar;"
wmic ENVIRONMENT create name="Path",username="%UserName%",VariableValue="%%JAVA_HOME%%\bin"
echo + 设置完毕,任意键退出 +
goto anyKeyToExit


:hasJavaHome_setJDK1.6
echo + 1 .已检测到%%JAVA_HOME%%;设置环境变量为JDK1.6 +
echo "%java6path%"
wmic ENVIRONMENT where "name='JAVA_HOME'" set VariableValue="%java6path%"
echo + 设置完毕,任意键退出 +
goto anyKeyToExit
:hasJavaHome_setJDK1.7
echo "%java7path%"
echo + 2 .已检测到%%JAVA_HOME%%;设置环境变量为JDK1.7 +
wmic ENVIRONMENT where "name='JAVA_HOME'" set VariableValue="%java7path%"
echo + 设置完毕,任意键退出 +
goto anyKeyToExit
:hasJavaHome_setJDK1.8
echo "%java8path%"
echo + 3 .已检测到%%JAVA_HOME%%;设置环境变量为JDk1.8 +
wmic ENVIRONMENT where "name='JAVA_HOME'" set VariableValue="%java8path%"
echo + 设置完毕,任意键退出 +
goto anyKeyToExit

:anyKeyToExit

pause