多个JDK使用批处理命令切换JDK版本

时间:2022-06-15 15:16:37

本篇博客参考的链接
http://blog.csdn.net/hu199055/article/details/70145389
https://www.cnblogs.com/xdp-gacl/p/5209386.html
http://blog.csdn.net/u010933908/article/details/50719512

以上的文章中,孤傲苍狼的版本会出现不能使用软件RefreshEnv刷新变量,5yong的版本有修改path变量,所以这里我做了一些简单的修改。

使用批处理命令切换JDK需要用到的软件可去上面的链接中下载(下面也会给出)

首先,新建文本文档。其次,用记事本打开后,请把下面的命令复制进去。

@echo off

rem --- Base Config 配置JDK的安装目录 ---
:init
set JAVA_HOME_1_8=C:\Program Files\Java\jdk1.8.0_102
set JAVA_HOME_1_7=C:\Program Files\Java\jdk1.7.0_15

:start
echo 当前使用的JDK 版本:
java -version
echo.
echo =============================================
echo jdk版本列表
echo 1.8
echo 1.7
echo =============================================

:select
set /p opt=请选择jdk版本:
if %opt%==1.8 (
set TARGET_JAVA_HOME=%JAVA_HOME_1_8%
)
if %opt%==1.7 (
set TARGET_JAVA_HOME=%JAVA_HOME_1_7%
)

echo 当前选择的Java路径:%TARGET_JAVA_HOME%

wmic ENVIRONMENT where "name='JAVA_HOME'" delete
wmic ENVIRONMENT create name="JAVA_HOME",username="<system>",VariableValue="%TARGET_JAVA_HOME%"


rem --- set path ---
rem set jhb=%TARGET_JAVA_HOME%\bin
rem set pt=%Path%


rem call set pt=%%pt:%jhb%;=%%
rem call set pt=%%pt:%jhb%=%%

rem wmic ENVIRONMENT where "name='Path' and username='<system>'" set VariableValue="%jhb%;%pt%"

rem 下面一句进入当前批处理文件所在的路径。因为,以管理员身份处理时,当前路径为%root%Systems32
cd /d %~dp0

rem -- refresh env ---
call RefreshEnv

echo 请按任意键退出!
pause>nul

@echo on

上面的JDK地址记得修改

之后,文件->另存为->修改后缀名为.bat->修改保存类型为所有文件->保存。
最后请下载RefreshEnv这个软件(下载地址: https://pan.baidu.com/s/1baGnpW),把软件与这个批处理文件放在同一个目录下

最后,使用管理员的身份就可以随意的切换JDK了。

当然了,这里可能还存在一些问题,比如有:切换了之后还是不行,虽然JAVA_HOME变了,但是其实版本还是没有变怎么办?
这是因为java6后好像会在system32中添加java.exe,javaw.exe,javac.exe这些文件,只要进去C:\Windows\System32把这些文件删除就可以了。