【实用工具】在 Windows 上使用 JVMS 管理多版本 JDK

文章目录

    • 前言
    • [JVMS 的主要功能](#JVMS 的主要功能)
    • [安装 JVMS](#安装 JVMS)
    • [初始化 JVMS](#初始化 JVMS)
    • [管理 JDK 版本](#管理 JDK 版本)
    • [手动添加 JDK](#手动添加 JDK)

前言

在 Java 开发过程中,针对不同的开发和测试需求,常常需要在多个 JDK 版本之间进行切换。手动管理这些版本可能繁琐且容易出错。为了解决这一问题,JDK Version Manager for Windows(JVMS) 应运而生。它是一个专为 Windows 用户设计的 JDK 版本管理工具,能够轻松地安装、切换和管理多个 JDK 版本。

JVMS 的主要功能

  • 多版本管理:支持同时安装和维护多个 JDK 版本,满足不同项目的需求。
  • 快速切换:通过简单的命令即可在不同的 JDK 版本之间切换。
  • 在线安装:直接从远程仓库下载并安装指定版本的 JDK。
  • 本地集成:自动配置环境变量,确保系统正确识别当前使用的 JDK 版本。

安装 JVMS

  1. 下载 JVMS :前往 GitHub Releases 页面,下载适用于您系统的最新版本。
  2. 解压文件 :将下载的压缩包解压到您选择的目录,例如 D:\常用软件\jvms

初始化 JVMS

在首次使用前,需要对 JVMS 进行初始化:

  1. 以管理员身份运行命令提示符:右键点击"命令提示符",选择"以管理员身份运行"。

  2. 执行初始化命令 :在命令提示符中,导航到 jvms.exe 所在目录,执行以下命令:

    bash 复制代码
    jvms init

    此操作将创建必要的配置文件和目录结构。

管理 JDK 版本

远程添加(这块比较吃网络,如果不成功可以看下面手动添加)

要查看可供安装的远程 JDK 版本列表,执行:

bash 复制代码
jvms rls -a

此命令将显示所有可用的 JDK 版本,供您选择安装。

安装指定版本的 JDK

例如,安装 JDK 11:

bash 复制代码
jvms install 11.0.15.1

安装过程可能需要一些时间,具体取决于您的网络状况。

查看本地已安装的 JDK 版本

要查看当前本地安装的所有 JDK 版本,执行:

bash 复制代码
jvms ls

此命令将列出所有已安装的 JDK 版本及其路径。

切换 JDK 版本

例如,切换到 JDK 11:

bash 复制代码
jvms switch 11.0.15.1

切换成功后,您可以通过以下命令验证当前使用的 JDK 版本:

bash 复制代码
java -version

请注意,切换 JDK 版本需要管理员权限,因此请确保以管理员身份运行命令提示符。

手动添加 JDK

如果您已经从其他渠道下载了 JDK,可以手动添加到 JVMS 的管理中:

之前文章有提到: JDK国内下载源

  1. 创建存储目录 :在 jvms.exe 所在目录下,新建一个名为 store 的文件夹。
  2. 添加 JDK :将下载的 JDK 解压后,放入 store 文件夹中。我之前已经安装过,默认安装在C盘的,也可以利用搜索工具看你安装在哪里。

然后复制过来,可以重命名文件夹。

  1. 刷新列表 :执行 jvms ls,即可看到新添加的 JDK 版本。

如果所示当前版本为JDK7,如果要切换到JDK11,使用下列命令即可:

bash 复制代码
jvms switch jdk11

新开一个CMD窗口进行验证

!!!同理可以切换为任意版本,切换后记得新开CMD窗口进行验证,保证环境刷新。

相关推荐
侠客行03179 小时前
Mybatis连接池实现及池化模式
java·mybatis·源码阅读
蛇皮划水怪9 小时前
深入浅出LangChain4J
java·langchain·llm
灰子学技术11 小时前
go response.Body.close()导致连接异常处理
开发语言·后端·golang
老毛肚11 小时前
MyBatis体系结构与工作原理 上篇
java·mybatis
风流倜傥唐伯虎11 小时前
Spring Boot Jar包生产级启停脚本
java·运维·spring boot
二十雨辰11 小时前
[python]-AI大模型
开发语言·人工智能·python
Yvonne爱编码11 小时前
JAVA数据结构 DAY6-栈和队列
java·开发语言·数据结构·python
Re.不晚11 小时前
JAVA进阶之路——无奖问答挑战1
java·开发语言
你这个代码我看不懂12 小时前
@ConditionalOnProperty不直接使用松绑定规则
java·开发语言
pas13612 小时前
41-parse的实现原理&有限状态机
开发语言·前端·javascript