Windows上的多版本jdk管理工具--JVMS(JDK Version Manager)

前言

Java在Windows上因为版本太多导致难以管理,这个方式可以很好的解决版本的切换。(也可以自己编写脚本方式切换)

项目地址

GitHub - ystyle/jvms: JDK Version Manager (JVMS) for Windows

gitHub连接不上时可以现在镜像地址

KKGitHub - ystyle/jvms: JDK Version Manager (JVMS) for Windows

 

项目具体介绍

适用于 Windows 的 JDK 版本管理器 (JVMS),在Windows上轻松的管理多Java版本。

使用教程

安装

https://github.com/ystyle/jvms/releases

备用github连接

https://kkgithub.com//ystyle/jvms/releases

 

初始化

  • 从上面的链接下载完成
  • 解压zip并将jvms.exe复制到你想要的路径
  • 以管理员身份运行 cmd 或 powershell
  • cd 到jvms.exe其中的文件夹
  • 执行初始化指令 (默认JAVA_HOME是获取ProgramFile路径,可以看下面自定义设置JAVA_HOME)
jvms.exe init

  

效果如下:

 

注意

jvms管理工具必须进行初始化,否则会发生错误:

Switch jdk failed, symlink D:\jvms_v2.1.6_amd64\store\11.0.15.1 : The system cannot find the path specified.

  

常用指令

 

使用本地的jdk进行版本切换

大部分人需要jdk版本管理工具的原因都是本地已经安装了多个JDK,所以这里直接用本地的jdk进行版本切换即可。具体步骤如下:

新建store目录

我们下载的jvms管理工具的压缩包中是只有一个可执行文件,初始化之后也是一样的,而想通过jvms管理jdk则必须在store下才可以,所以我们要在jvms的目录新建一个store目录

复制本地jdk

找到我们本地的jdk,一般情况下都是在这个目录,如果安装不是默认路径的话,自己去安装的路径找就行了  C:\Program Files\Java

可以看到我的jdk版本有三个

将其复制到jvms管理工具的store目录下

我这里为了方便已经将jdk的名字给重命名了

jvms本地版本列表

 jvms list 

 

jvms进行版本切换

ls查看可用jdk版本

先使用ls指令看看我们本地的jdk

可以看到我们刚刚复制过来的jdk是可用的,接下来切换版本即可,注意这里有一个问题,你的cmd或powershell必须是以管理员模式运行的,否则jvms是没有权限写入Path的,会出现下面这种错误:

set Environment variable JAVA_HOME failure: Please run as admin user

  

switch进行版本切换

先看一下当前系统的jdk版本,方便验证

当前系统jdk版本为17,那么我将其切换为jdk8

 

执行 

jvms  s jdk-8

 效果如下:

 


可以看到切换成功,现在验证版本,我们需要另外再开一个cmd窗口,原因是当前窗口的是不会刷环境变量的

切换成功

使用jvms下载jdk并管理

有的师傅呢就想把之前的卸了之后全用jvms重新下载加以管理,也有点师傅刚刚入行安全,还没得及用上jdk,想直接使用jvms。所以这里也提供使用jvms下载jdk的办法

列出jvms默认情况下可以下载的jdk版本

 
jvms init --originalpath https://raw.githubusercontent.com/ystyle/jvms/new/jdkdlindex.json

  

程序默认是获取Profilegram默认路径作为JAVA_HOME,用户可以单独设置JAVA_HOME。运行JAVA_HOME。

 

自定义设置JAVA_HOME的路径

jvms.exe init --java_home  D:\jdk 

 

 

使用rls指令列出可以安装的jdk版本

jvms.exe rls

想安装什么版本的jdk直接安装即可,如安装jdk20.0.0

jvms install 20.0.0

  

然后等待下载即可,这里的这个json是GitHub上的,所以使用jvms下载的时候记得挂代理,不过我还是推荐本地添加而不是连接github下载。

 

注意: switch底层使用 Symlink 链接符实现,进行切换可能会出现

Switch jdk failed, symlink D:\jvms\jvms_v2.1.6_amd64\store\jdk-8 D:\jvms\jdk: A required privilege is not held by the client. 

 

我是通过设置开发者模式解决,暂时没找到好的方法。

  • 打开 设置(Win + I)→ 隐私和安全性 → 开发者选项。
  • 开启 “开发人员模式”。
  • 重启电脑后重试。

安装包

vms_v2.1.6_amd64.zip

 

posted @ 2025-04-13 23:28  猿lk  阅读(3105)  评论(0)    收藏  举报