Windows上的多jdk版本管理工具
前言
Java在Windows上因为版本太多导致难以管理,这个项目可以很好的解决这点
项目地址
GitHub - ystyle/jvms: JDK Version Manager (JVMS) for Windows
项目具体介绍
适用于 Windows 的 JDK 版本管理器 (JVMS),在Windows上轻松的管理多Java版本。
使用教程
安装
https://github.com/ystyle/jvms/releases
初始化
- 从上面的链接下载完成
- 解压zip并将jvms.exe复制到你想要的路径
- 以管理员身份运行 cmd 或 powershell
- cd 到jvms.exe其中的文件夹
- 执行初始化指令
jvms.exe init
效果如下:

注意
jvms管理工具必须进行初始化,否则会发生错误:
Switch jdk failed, symlink D:\jvms_v2.1.5_amd64\store\11.0.15.1 : The system cannot find the path specified.
Switch jdk failed, symlink D:\jvms_v2.1.5_amd64\store\11.0.15.1 : The system cannot find the path specified.
常用指令
NAME:
jvms - JDK Version Manager (JVMS) for Windows
USAGE:
jvms.exe [global options] command [command options] [arguments...]
VERSION:
v2.1.5
COMMANDS:
init jvms进行初始化
list, ls 列出本地已经安装的JDK版本
install, i 安装jdk到本地
switch, s 切换需要使用的JDK版本
remove, rm 删除不需要的jdk版本
rls 列出可以下载的JDK版本
proxy 使用代理进行下载
help, h 提供帮助,显示可用的命令
使用本地的jdk进行版本切换
大部分人需要jdk版本管理工具的原因都是本地已经安装了多个JDK,所以这里直接用本地的jdk进行版本切换即可。具体步骤如下:
新建store目录

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

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

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

我这里为了方便已经将jdk的名字给重命名了
jvms进行版本切换
ls查看可用jdk版本
先使用ls指令看看我们本地的jdk

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

switch进行版本切换
先看一下当前系统的jdk版本,方便验证

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

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

切换成功
使用jvms下载jdk并管理
有的师傅呢就想把之前的卸了之后全用jvms重新下载加以管理,也有点师傅刚刚入行安全,还没得及用上jdk,想直接使用jvms。所以这里也提供使用jvms下载jdk的办法
列出jvms默认情况下可以下载的jdk版本
jvms init --originalpath https://raw.githubusercontent.com/ystyle/jvms/new/jdkdlindex.json
运行效果如下:

运行JAVA_HOME
jvms.exe init --java_home
使用rls指令列出可以安装的jdk版本
jvms.exe rls

想安装什么版本的jdk直接安装即可,如安装jdk20.0.0
jvms install 20.0.0
然后等待下载即可,因为我这里的这个json是GitHub上的,所以使用jvms下载的时候记得挂代理,不过我还是推荐本地添加而不是现下
安装包
Windows上的多jdk版本管理工具的更多相关文章
- [Shell] Windows上支持Linux Shell的工具/方法
0 概述 1 方式一 : Windows Terminal 局限性: 不支持 xargs等命令 支持sed,find等命令 安装方式 安装Windows Terminal的最简单方法是通过Micros ...
- 开发者神器!Windows上最强大的虚拟桌面工具-Dexpot
简介 : 用过Linux和Mac计算机的人都知道 , 这两个系统上都有个多桌面的功能非常使用 . 而在Windows上并没有该项功能 , 虽然目前Win10已经增加了多桌面的程序 , 但使用上仍体验不 ...
- jdkman(jdk版本管理工具)安装和使用(mac)
1.安装jdkman 1.1.下载命令 curl -s "https://get.sdkman.io" | bash 执行后,sdkman安装到目录$HOME/.sdkman/,比 ...
- Windows上node.js的多版本管理工具
在Linux上我一直使用nvm来管理nodejs的不同版本,但是nvm没有windows版本,今天发现在windows上可以使用另外一个版本管理工具nvm-windows来管理. 下载与安装下载地址: ...
- windows上的Qt 5的依赖部署打包
通常我们编译Qt程序的时候最终会生成exe或dll,这些可执行文件都会有Qt模块的依赖,如果项目一旦庞大,就不是很好看出缺了什么模块,导致安装包安装到其他绿色干净的windows机器上会提示缺少XXX ...
- Node版本管理工具-NVM的安装与使用(windows系统)
友情提示:为避免踩坑,建议浏览全文后动手操作!!! 一.nvm是什么 看到这篇文章的猿/媛们肯定不会问这个问题了,但是我还是要说,哈哈哈! 无论工作还是干嘛,就不会一直做项目,所以肯定也不会一直用一个 ...
- Windows下完全卸载node.js并安装node.js的多版本管理工具nvm-windows
前言 由于高版本的node.js导致gulp执行build命令失败,我需要在Windows下卸载掉已有的node.js并安装一个多版本管理工具nvm-windows,方便切换不同版本的node.js. ...
- JVM 源码分析(二):搭建 JDK 8 源码调试环境(Windows 上使用 CLion)
前言 一.准备源码 二.安装 "Bootstrap JDK" 三.配置编译环境 四.编译与测试 五.安装 CMake 和 GDB 五.准备远程调试 六.开始远程调试 前言 上一篇文 ...
- Windows上管理远程Linux VPS/服务器文件工具 - winscp
Linux上经常会经常需要编辑文件,特别是Linux VPS/服务器安装好系统之后配置环境会需要修改很多的配置文件等,对于常用Linux的基本上都能够熟练使用vi或者nano等SSH下面的文件编辑工具 ...
- 【转载】Windows上那些值得推荐的良心软件-整理 easybcd 引导工具 easyuefi 引导工具
您查询的关键词是:清理dism知乎 以下是该网页在北京时间 2019年03月17日 21:56:16 的快照: 如果打开速度慢,可以尝试快速版:如果想更新或删除快照,可以投诉快照. 百度和网页 htt ...
随机推荐
- 加速LakeHouse ACID Upsert的新写时复制方案
概述 随着存储表格式 Apache Hudi.Apache Iceberg 和 Delta Lake 的发展,越来越多的公司正在这些格式的基础上构建其 Lakehouse,以用于许多用例,例如增量摄取 ...
- PerfView专题 (第十四篇): 洞察那些 C# 代码中的短命线程
一:背景 1. 讲故事 这篇文章源自于分析一些疑难dump的思考而产生的灵感,在dump分析中经常要寻找的一个答案就是如何找到死亡线程的生前都做了一些什么?参考如下输出: 0:001> !t T ...
- 今日ERROR
树莓派插卡发烫严重 首先,我们要知道: 树莓派的指示灯可以告诉用户系统的工作状态,常见的指示灯有四个,分别是红色电源灯.绿色SD卡读写灯.黄色ACT指示灯和蓝色网络连接指示灯(仅适用于某些型号的树莓派 ...
- 《敏捷无敌之DevOps时代》读后感
背景: 2020年基于我司业务形态,我开始实行敏捷项目管理.以敏捷为道,Scrum为法,迭代为术,禅道作器,大张旗鼓的搞了2年敏捷开发.随着时间推移,问题出现在2022年,当时我们已经完全按照Scru ...
- VuePress@next 使用数学公式插件
VuePress@next 使用数学公式插件 搞了一个VuePress1.0的 现在升级了一下,但是使用数学公式的插件老报错啊!经过不懈努力,终于搞定了.现在记录一下. VuePress 介绍 Vue ...
- React: React-Router嵌套路由 exact问题
说明 当使用嵌套路由时,不能在父路由中添加exact,因为要先匹配父路由才能匹配子路由 父路由 子路由 效果如下所示 参考链接 https://www.jianshu.com/p/8bc3251079 ...
- 【工具】-Reverse-DIE(Detect-It-Easy)
关于 Detect It Easy,或缩写为"DIE"是一个用于确定文件类型的程序.Detect It Easy 是一个多功能的 PE 检测工具,基于 QT 平台编写,主要用于 P ...
- Programming abstractions in C阅读笔记:p91-p106
<Programming Abstractions In C>学习第45天,p91-p102,完成第二章内容学习.总结如下: 一.技术总结 1.垃圾回收 p91,"Some la ...
- C#系统锁屏事件例子 - 开源研究系列文章
今天有个网友问了个关于操作系统锁屏的问题. 我们知道,操作系统是基于消息和事件处理的,所以我们只要找到该操作系统锁屏和解屏的那个事件,然后在事件里进行处理即可.下面是例子介绍. 1. 项目目录: 下面 ...
- 8、Spring之基于注解的自动装配
8.1.场景模拟 8.1.1.UserDao接口及实现类 package org.rain.spring.dao; /** * @author liaojy * @date 2023/8/5 - 18 ...