【实用工具】在 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窗口进行验证,保证环境刷新。

相关推荐
indexsunny几秒前
互联网大厂Java面试实战:微服务、Spring Boot与Kafka在电商场景中的应用
java·spring boot·微服务·面试·kafka·电商
SUDO-19 分钟前
Spring Boot + Vue 2 的企业级 SaaS 多租户招聘管理系统
java·spring boot·求职招聘·sass
sheji341614 分钟前
【开题答辩全过程】以 基于spring boot的停车管理系统为例,包含答辩的问题和答案
java·spring boot·后端
love530love17 分钟前
EPGF 新手教程 21把“环境折磨”从课堂中彻底移除:EPGF 如何重构 AI / Python 教学环境?
人工智能·windows·python·重构·架构·epgf
重生之后端学习19 分钟前
21. 合并两个有序链表
java·算法·leetcode·链表·职场和发展
源代码•宸19 分钟前
Leetcode—1266. 访问所有点的最小时间【简单】
开发语言·后端·算法·leetcode·职场和发展·golang
遇见~未来23 分钟前
JavaScript数组全解析:从本质到高级技巧
开发语言·前端·javascript
南屿欣风23 分钟前
Sentinel 熔断规则 - 异常比例(order & product 示例)笔记
java·开发语言
u01040583630 分钟前
使用Java实现高性能的异步编程:CompletableFuture与Reactive Streams
java·开发语言
朔北之忘 Clancy37 分钟前
2020 年 6 月青少年软编等考 C 语言二级真题解析
c语言·开发语言·c++·学习·青少年编程·题解·尺取法