JDK Version Manager (JVMS) for Windows
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 3 年前 | ||
| 6 个月前 | ||
| 8 年前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 3 年前 | ||
| 8 年前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 7 个月前 | ||
| 2 个月前 |
JDK 版本管理器(JVMS)for Windows
管理 Windows 计算机上的多个 JDK 安装。 JVMS,立即下载!
在某些情况下,能够在不同版本的 JDK 之间切换非常有用。例如,如果您想使用最新的前沿版本测试正在开发的项目,而又不想卸载稳定版本的 JDK,此工具可以提供帮助。
安装
- 立即下载
- 解压 zip 文件并将 jvms.exe 复制到您想要的路径
- 以管理员身份运行 cmd 或 powershell
- 切换到
jvms.exe所在的文件夹 - 运行
jvms.exe init - 设置完成!切换和安装 JDK 请参见使用方法部分

使用方法
NAME:
jvms - JDK Version Manager (JVMS) for Windows
USAGE:
jvms.exe [global options] command [command options] [arguments...]
VERSION:
2.1.17
COMMANDS:
tui, tui Run the interactive TUI interface
init Initialize config file
list, ls List current JDK installations.
install, i Install available remote jdk
switch, s Switch to use the specified version or index number.
use, u Switch to use the specified version and install it if not installed.
remove, rm Remove a specific version.
rls Show a list of versions available for download.
proxy Set a proxy to use for downloads.
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--help, -h show help
--version, -v print the version
如何安装和切换 JDK。请参考:
- 以管理员身份运行 cmd 或 powershell
jvms rls列出可供下载的 JDK 版本jvms install 1.8.0_31安装 JDK 1.8.0_31jvms ls列出已安装的 JDKjvms switch 1.8.0_31将 JDK 版本切换为 1.8.0_31jvms use 21.0.4安装(如缺失)并切换到 JDK 21.0.4jvms tui启动交互式 TUI 选择器jvms tui -i启动 TUI 安装选择器jvms tui -s启动 TUI 切换选择器

JDK 来源与版本策略
JVMS 支持多种 JDK 发行版,让您可以灵活选择偏好的 JDK:
支持的 JDK 发行版
- Oracle JDK - 包含在默认索引中(仅限 LTS 版本)
- Amazon Corretto - 包含在默认索引中(仅限 LTS 版本)
- Adoptium (Eclipse Temurin) - 通过 API 提供,动态获取
- Azul Zulu - 通过 API 提供,动态获取
仅 LTS 策略
默认的 jdkdlindex.json 仅包含LTS(长期支持) 版本:
- Java 8
- Java 11
- Java 17
- Java 21
- Java 25
非 LTS 版本(Java 9、10、12、13、14、15、16、18、19、20、22、23、24 等)未包含在默认索引中,因为它们会在 6 个月内达到生命周期结束。
不过,如有需要,您仍可以安装非 LTS 版本:
- 使用
jvms rls查看所有可用版本(包括来自 Adoptium 和 Azul 的非 LTS 版本) - 添加您自己的本地 JDK 版本(见下文)
- 设置自定义下载服务器,包含您偏好的版本
主要区别是什么?
首先,此版本的 jvms 不依赖其他库。它是用 Go 编写的,与在功能有限的 .bat 文件中进行 hack 相比,这是一种更结构化的方法。它不依赖于已有的 JDK 安装。
控制机制也大不相同。支持多个 JDK 安装并具备热切换功能通常有两种方式。第一种是在每次切换版本时修改系统 PATH,或者通过使用 .bat 文件模拟 JDK 可执行文件并相应地重定向来绕过它。在我看来,这总是有点 hack 的味道,并且这种实现方式会导致一些问题。
第二种选择是使用符号链接(symlink)。此概念要求将符号链接放入系统 PATH,然后更新其目标指向您要使用的 JDK 安装目录。这是一种简单直接的方法,似乎也是人们推荐的方法……直到他们意识到在 Windows 上创建符号链接有多麻烦。这就是以前没有采用这种方法的原因。
为了创建/修改符号链接,您必须以管理员身份运行,并且必须绕过 Windows UAC(那个烦人的提示)。因此,Windows 版 JVMS 维护一个单独的符号链接,该链接仅在 jvms init 期间放入系统 PATH。切换到不同版本的 JDK 只需切换符号链接的目标即可。因此,此工具不需要您每次打开控制台窗口时都运行 jvms switch x.x.x。当您确实运行 jvms switch x.x.x 时,JDK 的活动版本会自动在所有打开的控制台窗口中更新。它还会在系统重启之间保持不变,因此您只需在想要进行更改时使用 jvms。
总体而言,该项目汇集了一些想法、一些经过实践检验的其他模块部分以及对较新版本 JDK 的支持。
我还编写了一个简单的 数据馈送,其中包含 JDK 版本列表。任何人都可以免费使用。
添加本地 JDK 版本
例如:添加 jdk 17.0.1
- 将 JDK 主目录复制到
jvms/store - 将文件夹重命名为
17.0.1 - 执行
jvms list进行检查 - 执行
jvms switch 17.0.1 - 执行
java -version检查 JDK 版本
创建自己的本地下载服务器
- 创建一个 json 文件,例如
index.json - 向其中添加 JDK 下载链接,格式如下:
[ { "version":"1.9.0", "url":"http://192.168.1.101/files/jdk/1.9.0.zip" } ] - 将此文件复制到静态文件服务器,如 nginx、apache 等
- 执行
jvms init --originalpath http://192.168.1.101/files/index.json。顺便说一下,jvms init --java_home可以修改默认的 JAVA_HOME - 然后执行
jvms rls或jvms install x即可列出或安装您的 JDK 版本
创建 JDK 压缩文件
- 打开 jdk_home 文件夹
- 将所有文件压缩为
*.zip文件 - 将压缩文件复制到您的服务器
- 将此压缩文件链接添加到 index.json
许可证
MIT。