首页 > 资源分享 > windows jdk版本一键切换批量处理文件.md
2016
07-24

windows jdk版本一键切换批量处理文件.md

本文的批量处理命令是,切换jdk版本,切换jdk版本,切换jdk版本!!!讲三遍
由于各种各样的原因一台机器上可能需要安装不同版本的jdk。

测试环境:

  • win10 x64

  • jdk: jdk1.8 jdk1.7 jdk1.6
    jdk 1.8 是为安装版,jdk1.7 jdk1.6为 免安装版

@echo off
::定义路径 
set jdk1.8="C:\Program Files\Java\jdk1.8.0_73"
set jdk1.7="C:\Program Files\Java\jdk1.7.0_79"
set jdk1.6="C:\Program Files\Java\jdk1.6.0_31"
::判断注册表是否存在
reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v JAVA_HOME>nul 2>nul && goto :start || goto :creatkey
:start
echo ============================================= 
echo jdk版本列表 
echo (1):1.8 
echo (2):1.7
echo (3):1.6 
echo ============================================= 
echo 请选择jdk 版本:(输入序号)
set /p select=
if %select%==1 (goto :jdk1.8) else if %select%==2 (goto :jdk1.7) else if %select%==3 (goto :jdk1.6) else (goto :error)
echo %select%
:jdk1.8
wmic ENVIRONMENT where "name='JAVA_HOME' and username='<system>'" set VariableValue=%jdk1.8%>nul 2>nul && echo 修改为jdk1.8 || goto :endtwo
goto :end

:jdk1.7
wmic ENVIRONMENT where "name='JAVA_HOME' and username='<system>'" set VariableValue=%jdk1.7%>nul 2>nul && echo 修改为jdk1.7 || goto :endtwo
goto :end

:jdk1.6
wmic ENVIRONMENT where "name='JAVA_HOME' and username='<system>'" set VariableValue=%jdk1.6%>nul 2>nul && echo 修改为jdk1.6 || goto :endtwo
goto :end

::输入序号错误
:error
cls
echo **********************************************
echo ************选择错误,请重新输入:*************
echo **********************************************
goto :start


::创建注册表
:creatkey
reg add  "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v JAVA_HOME  /t reg_sz /d %jdk1.8%
wmic ENVIRONMENT create name="JAVA_HOME",username="<system>",VariableValue=%jdk1.8%
goto :start

::正常的结束,这里可以刷新各个环境变量
:end
taskkill /im explorer.exe /f>nul 2>nul
start c:\windows\explorer.exe>nul 2>nul
pause
exit
::非正常的结束
:endtwo
echo 修改失败,请以管理员身份运行文件。。
pause

效果我就不演示了,大概原理就是wmic ENVIRONMENT 设置JAVA_HOME 使环境变量立即生效,通过重启explorer.exe来刷新环境变量

最后编辑:
作者:xiaobai
这个作者貌似有点懒,什么都没有留下。

留下一个回复

你的email不会被公开。