jvms:基于 Go 的 Windows JDK 版本管理工具

JDK Version Manager (JVMS) for Windows

分支2Tags27
文件最后提交记录最后更新时间
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_31
  • jvms ls 列出已安装的 JDK
  • jvms switch 1.8.0_31 将 JDK 版本切换为 1.8.0_31
  • jvms use 21.0.4 安装(如缺失)并切换到 JDK 21.0.4
  • jvms tui 启动交互式 TUI 选择器
  • jvms tui -i 启动 TUI 安装选择器
  • jvms tui -s 启动 TUI 切换选择器


JDK 来源与版本策略

JVMS 支持多种 JDK 发行版,让您可以灵活选择偏好的 JDK:

支持的 JDK 发行版

  1. Oracle JDK - 包含在默认索引中(仅限 LTS 版本)
  2. Amazon Corretto - 包含在默认索引中(仅限 LTS 版本)
  3. Adoptium (Eclipse Temurin) - 通过 API 提供,动态获取
  4. 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

  1. 将 JDK 主目录复制到 jvms/store
  2. 将文件夹重命名为 17.0.1
  3. 执行 jvms list 进行检查
  4. 执行 jvms switch 17.0.1
  5. 执行 java -version 检查 JDK 版本 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 rlsjvms install x 即可列出或安装您的 JDK 版本

创建 JDK 压缩文件

  • 打开 jdk_home 文件夹
  • 将所有文件压缩为 *.zip 文件
  • 将压缩文件复制到您的服务器
  • 将此压缩文件链接添加到 index.json

许可证

MIT。

项目介绍

Windows 版 JDK 版本管理器 (JVMS)【此简介由AI生成】

定制我的领域
141.03 K110访问 GitHub