前言
因为老项目和新项目的需要,在电脑上需要切换jdk1.8和jdk17(其它版本jdk同样可以切换)。网上有修改配置文件的方式,但是感觉比较繁琐,后来找到了通过bat文件和环境变量来快速切换jdk环境的方法。这里记录分享出出来,
只需要通过命令行即可完成切换。
1 效果图
管理员身份运行cmd窗口
效果图 打开新的命令行窗口
2 安装需要切换的jdk并配置环境变量
官网jdk下载地址
通过官网下载需要的jdk
网上有很多说,通过exe或msi安装的jdk会默认该什么文件,导致切换不生效,所以如果大家还没有下载安装,就直接下载zip的压缩包,自己解压配置环境吧。
当然,如果已经安装好了,或者只安装了一个也不用卸载,下面我会分享自己遇到的不生效解决方案,如果遇到应该也可以解决你的问题。
我的安装目录:
3 环境变量配置
环境变量配置:
如果你已经安装配置过一个jdk的环境变量,那么就按照下面修改即可。
如果没有配置过,可以看着我下面的配置文件配置,或者留言给我。
选择系统变量,点击新建,输入变量名JAVA_HOME,变量值为JDK的bin目录所在路径。如图:
注意不用带bin
选择系统变量,找到Path变量,点击编辑。
点击新建,输入%JAVA_HOME%\bin,点击确定。
配置脚本所在目录
这样打开cmd输入bat脚本名就可以执行
4 bat脚本
根据下面配置文件的注解,修改一下自己jdk和环境变量刷新程序的路径即可。
@echo off
rem --- Base Config 配置JDK的安装目录---
:init
set JAVA_HOME_1_7=C:\Program Files\Java\jdk-17.0.6
set JAVA_HOME_1_8=C:\Program Files\Java\jdk1.8.0_162
rem 刷新环境变量的程序,绝对路径
set RefreshEnv=C:\Progra~1\Java\cut_jdk\RefreshEnv.exe
echo 当前使用的JDK版本:
echo =============================================
java -version
echo.
echo =============================================
echo jdk版本列表〃
echo 8
echo 17
echo =============================================
:select
set /p opt=请选择jdk版本:
if %opt%==8 (
set TARGET_JAVA_HOME=%JAVA_HOME_1_8%
)
if %opt%==17 (
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 刷新环境变量
call %RefreshEnv%
echo 按任意键退出!
pause>nul
@echo on
刷新环境变量的程序放在文章最后
这里有个配置需要注意,如果你的程序放在了 C:\Program Files 目录下
那么路径就要配置成:
C:\Progra~1\
其它路径直接复制粘贴过来即可
5 不生效问题解决
问题1 不生效
更换jdk版本且修改环境变量并不能生效,如原本安装了1.8,现更换为1.7,且配置了环境变量,但是java -version仍显示1.8。
原因
当使用安装版本的JDK程序时(一般是1.7版本以上),在安装结束后安装程序会自动将java.exe、javaw.exe、javaws.exe三个可执行文件复制到C:\Windows\System32目录,这个目录在WINDOWS环境变量中的优先级高于JAVA_HOME设置的环境变量优先级,故此直接更改JAVA_HOME会无效。
另外,JDK1.8安装版本,还会在C:\ProgramData\Oracle\Java目录中生成一些配置文件,并同时将此目录写到环境变量中的Path中。
解决
删除C:\Windows\System32目录下的java.exe、javaw.exe、javaws.exe三个文件
删除环境变量Path中C:\ProgramData\Oracle\Java\javapath的配置
我的C:\Windows\System32 中并没有这三个文件,但是删除了环境变量里上面的配置生效了一次
如果还不生效,再path中,将java的配置移动到最上面
问题2 运行命令时,报找不到可执行的程序
这个问题主要就是如果你的刷新环境变量工具如果放在了
C:\Program Files 目录下
配置会报找不到程序。
路径需要改成
那么路径就要配置成:
C:\Progra~1\
6 源码 demo
jdk1.8 -- 自行下载
jdk17 -- 自行下载
cutjdk.bat -- 见文章 目录4 bat脚本
RefreshEnv.exe -- 脚本刷新工具 传送门
到这里基本都可以实现大家的需求,麻烦大家帮文章点点赞喽!没有c币的小伙伴,帮忙多给我文章多点点赞私信我给你