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 ...
随机推荐
- Java_Day17_作业
1:需求:递归删除带内容的目录 假设删除当前项目下的目录:demo,demo中可以有文件夹自己给出 2:需求:请大家把E:\JavaSE目录下所有的java结尾的文件的绝对路径给输出在控制台. 3:下 ...
- Mediabox:年度最佳音视频开发工具
"2023稀土开发者大会"落下帷幕,由稀土掘金社区评选的的掘金技术引力榜重磅出炉,共有22个优秀实践案例上榜,涵盖对技术行业发展有特别贡献的人物.开发工具.开源项目.技术团队和技术 ...
- Socket 入坑
什么是Socket Socket(套接字)是在计算机网络中实现通信的一种机制.它提供了一种应用程序编程接口(API),允许应用程序通过网络进行数据传输和通信. 在网络通信中,Socket 可以被看作是 ...
- enumerate()使用方法
enumerate()(单词意思是枚举的意思)是python中的内置函数, enumerate(X,[start=0]) 函数中的参数X可以是一个迭代器(iterator)或者是一个序列, start ...
- python教程 入门学习笔记 第3天 编程基础常识 代码注释 变量与常量
编程基础常识 一.注释 1.对代码的说明与解释,它不会被编译执行,也不会显示在编译结果中 2.注释分为:单行注释和多行注释 3.用#号开始,例如:#这是我的第一个python程序 4.注释可以写在单独 ...
- 通过Proxy和Reflect实现vue的响应式原理
vue3通过Proxy+Reflect实现响应式,vue2通过defineProperty来实现 Proxy Proxy是什么 Proxy是ES6中增加的类,表示代理. 如果我们想要监听对象的操作过程 ...
- 小议ml.NET机器学习与人机责任划分
最近,特斯拉宣布召回110万辆车,名义上是纠正单踏板不良习惯,背后原因可能是这些车辆的电子控制单元存在缺陷,可能导致刹车失灵(潮州等交通事故至今没有定论).这个事件引起了人们对于机器学习技术和人机责任 ...
- [gin]基于切片实现crud
前言 代码参考自<Building Distributed Application in Gin> 需求:设计一个食谱相关的API,数据存放到切片中. 设计模型和API 模型 type R ...
- 学好Elasticsearch系列-聚合查询
本文已收录至Github,推荐阅读 Java随想录 微信公众号:Java随想录 先看后赞,养成习惯. 点赞收藏,人生辉煌. 目录 概念 doc values 和 fielddata multi-fie ...
- XAML格式化工具:XAML Styler
XAML格式化的意义 在开发WPF应用过程中,编写XAML时需要手动去缩进或者换行,随着时间的推移或者参与开发的人增多,XAML文件内容的格式会越来越乱.要么属性全都写在一行,内容太宽一屏无法完整展现 ...