windows快速切换jdk版本号

前言

因为老项目和新项目的需要,在电脑上需要切换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\

在这里插入图片描述

观察path环境变量已经变了 但是仍然不生效。
在这里插入图片描述在这里插入图片描述
是因为安装完jdk8之后有上面的默认配置
找个网图给大家看一下
在这里插入图片描述
删除jdk17和jdk8默认的配置或者把默认的下移,统一使用自己的%JAVA_HOME%.
然后重启电脑后,默认的已经变成jdk17

6 源码 demo

jdk1.8 – 自行下载
jdk17 – 自行下载
cutjdk.bat – 见文章 目录4 bat脚本
RefreshEnv.exe – 脚本刷新工具 传送门
在这里插入图片描述
在这里插入图片描述

到这里基本都可以实现大家的需求,麻烦大家帮文章点点赞喽!没有c币的小伙伴,帮忙多给我文章多点点赞私信我给你

  • 17
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑白极客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值