JDK多版本管理工具安装和使用详细教程

 更新时间:2025年09月10日 11:32:17   作者:放弃     治疗  
随着软件开发环境的日益复杂,多版本Java开发工具包(JDK)管理变得尤为重要,下面这篇文章主要介绍了JDK多版本管理工具安装和使用的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

概要

Jabba 是一个开源的多版本 Java 管理工具,类似于 SDKMAN!,它支持多个 JDK 版本的管理,

本文主要讲解在Windows系统安装Jabba ,并且适用于 Windows、macOS 和 Linux 系统

以下是你可以选择的一些方法:

  1. 通过 Windows Terminal 配置不同环境变量

    • 在 Windows Terminal 中,你可以为每个配置(例如 PowerShell 或 Command Prompt)设置不同的环境变量 JAVA_HOME 和 Path,确保每次启动时自动切换到指定的 JDK 版本。
  2. 使用开源工具(如 Jabba 和 SDKMAN!)

    • Jabba 是一个简单的多版本管理工具,支持在 Windows 上安装并切换不同的 JDK 版本。你可以通过命令行安装 JDK,并随时切换所需版本。
    • SDKMAN! 也可以通过 Windows 子系统 Linux(WSL)使用,支持跨平台切换 JDK 版本。它适用于需要多版本管理的开发者。
  3. 手动配置多个 JDK 版本

    • 如果不想使用额外的工具,你可以手动安装多个 JDK 版本,并通过脚本或环境变量的修改,在不同的终端会话中切换。

以下为参考信息

方法一:手动管理 JDK 版本切换

  1. 安装多个 JDK 版本

    • 你可以在不同的目录下安装多个 JDK 版本,例如:
      • C:\Program Files\Java\jdk1.8.0_281
      • C:\Program Files\Java\jdk-21
  2. 设置 JAVA_HOME 环境变量

    • 每次你想切换 JDK 版本时,可以手动更改 JAVA_HOME 环境变量,指向不同的 JDK 安装目录。
    • 具体操作步骤:
      1. 打开 系统属性 → 高级系统设置 → 环境变量
      2. 在 系统变量 中找到 JAVA_HOME,然后编辑它的值,指向你想使用的 JDK 路径。
      3. 编辑完 JAVA_HOME 后,更新 Path 变量,确保 Path 变量中包含 %JAVA_HOME%\bin
  3. 验证 JDK 切换

    • 每次切换完 JAVA_HOME 后,打开命令行终端,使用 java -version 和 javac -version 命令来检查当前 JDK 版本。

方法二:使用批处理脚本(方便切换)

你可以编写一个简单的 批处理脚本(.bat 文件)来自动切换 JDK 版本。例如:

@echo off
SET JDK_VERSION=21
IF "%JDK_VERSION%"=="8" SET JAVA_HOME=C:\Program Files\Java\jdk1.8.0_281
IF "%JDK_VERSION%"=="21" SET JAVA_HOME=C:\Program Files\Java\jdk-21
SET PATH=%JAVA_HOME%\bin;%PATH%
echo Switched to JDK version %JDK_VERSION%
java -version

每种方法都有其适用场景,Jabba 和 SDKMAN! 都能提供简便的版本管理,而手动配置则更灵活适合不依赖第三方工具的开发者。如果你需要更高级的隔离环境,还可以考虑使用 Docker 容器化 JDK。

工具安装和使用流程

7/15/2025, 5:50:33 PM

windows的开源jdk多版本管理工具

7/15/2025, 5:50:44 PM

在 Windows 上,虽然不像 Linux 和 macOS 那样有像 SDKMAN!Jenv 这样的多版本管理工具,但依然可以使用一些开源工具来管理多个 JDK 版本。下面是几种适合 Windows 的开源 JDK 多版本管理工具:

1.Jabba

Jabba 是一个开源的多版本 Java 管理工具,类似于 SDKMAN!,它支持多个 JDK 版本的管理,并且适用于 Windows、macOS 和 Linux 系统。

安装和使用 Jabba:

GitHub的Jabba的地址:https://github.com/shyiko/jabba/tree/0.11.2

  1. 安装 Jabba

    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
    Invoke-Expression (
      Invoke-WebRequest https://github.com/shyiko/jabba/raw/master/install.ps1 -UseBasicParsing
    ).Content

如下图所示安装成功   执行命令 jabba --version 查询当前安装成功的版本

分两种方式

一:关联将系统 JDK 与 Jabba 关联

一定要使用终端,以管理员的身份运行

1. 在 PowerShell 中使用 jabba link 命令: 通过 jabba link 命令将系统的 JDK 与 Jabba 进行关联命令:jabba link system@1.8.0 "C:\Program Files\Java\jdk1.8.0_251"

如果关联不了一定要确认jdk的路径不能带有空格的路径文件名下,解决方法请下滑页面到技术细节

2. 通过查询jdk 命令:jabba ls

3. 切换系统的版本的命令:jabba use system@1.8.0

如图所示,我当前的版本是21

jabba use system@1.8.0

如果切换版本报错,请下滑页面到技术细节

如下图所示切换就成功了

4. 删除错误的 JDK 版本链接的名称

二:通过jabba进行安装jdk

  1. 安装 JDK 版本

    • 例如,安装 JDK 8 和 JDK 11:
      jabba install adoptopenjdk@8 jabba install adoptopenjdk@11
  2. 切换 JDK 版本

    • 使用以下命令来切换 JDK 版本:
      jabba use adoptopenjdk@8 jabba use adoptopenjdk@11
  3. 查看已安装的 JDK 版本

    • 列出所有安装的 JDK 版本:
      jabba ls

技术细节

带有空格的文件名路径的jdk,需要卸载重新安装jdk就可以解决了

如图所示就是解决了

切换jdk版本错误解决,如图所示报错问题

需要将配置的系统变量删除

  1. 删除以下变量

    • 用户变量和系统变量中的 JAVA_HOME

    • 用户变量和系统变量中的 CLASSPATH

    • path 里的相关联的变量

虽然删除完了系统变量,但是安装的jabba在文件中文路径下导致系统识别jdk路径乱码,如图所示

需要卸载重新安装jabba。

步骤 2:修复 Jabba 安装位置

powershell

# 1. 卸载当前有问题的 Jabba
Remove-Item -Recurse -Force ~\.jabba

# 2. 设置英文安装路径(避开中文用户名问题)
$env:JABBA_HOME = "C:\.jabba"

# 3. 重新安装 Jabba
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Invoke-Expression (
    Invoke-WebRequest https://github.com/shyiko/jabba/raw/master/install.ps1 -UseBasicParsing
).Content

# 4. 永久设置 JABBA_HOME
[System.Environment]::SetEnvironmentVariable('JABBA_HOME', 'C:\.jabba', 'User')

环境变量需要添加上并且一定要关闭 终端,再重新打开终端

处理完成之后,重新回到上滑页面到使用教程,重新按照步骤添加以下就能够成功了,如下图所示

  • 简单易用,命令行管理。
  • 支持 JDK 版本的安装和切换。
  • 跨平台支持,适用于 Windows、Linux 和 macOS。

注意这里的环境变量一定要删除

如果当前系统还存在tomcat需要启动的情况,可以配置如下所示

全局环境变量配置

  1. 获取 Java 路径:

    powershell

    jabba which system@1.8.0
    # 输出示例:C:\.jabba\jdk\system@1.8.0
  2. 设置系统环境变量:

    • 按 Win + R → 输入 sysdm.cpl

    • 高级 → 环境变量 → 新建系统变量:

      变量名:JAVA_HOME
      变量值:C:\.jabba\jdk\system@1.8.0
    • 编辑 PATH → 添加:%JAVA_HOME%\bin

  3. 验证:

    powershell

    # 新开终端执行
    java -version
  4. 启动 Tomcat:

    powershell

    cd D:\soft-xiao\nutrisystem_file\apache-tomcat-9.0.55\bin
    .\startup.bat

小结

到此这篇关于JDK多版本管理工具安装和使用的文章就介绍到这了,更多相关JDK多版本管理工具安装使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • idea如何自动生成serialVersionUID

    idea如何自动生成serialVersionUID

    这篇文章主要介绍了idea如何自动生成serialVersionUID,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • Spring整合Struts2的两种方法小结

    Spring整合Struts2的两种方法小结

    下面小编就为大家带来一篇Spring整合Struts2的两种方法小结。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • Java与Kotlin互调原理讲解

    Java与Kotlin互调原理讲解

    这篇文章主要介绍了Java与Kotlin互调原理,分享内容有Kt调用-Java参数非null的处理、Java中使用kt关键字声明的变量和方法、Kt调用Java-SAM转换等内容,需要的小伙伴可以参考一下
    2022-02-02
  • SpringBoot集成Redis数据库,实现缓存管理

    SpringBoot集成Redis数据库,实现缓存管理

    SpringBoot2 版本,支持的组件越来越丰富,对Redis的支持不仅仅是扩展了API,更是替换掉底层Jedis的依赖,换成Lettuce。 本案例需要本地安装一台Redis数据库。下面就来看下集成Redis的步骤
    2021-06-06
  • SpringBoot+thymeleaf+ajax实现局部刷新详情

    SpringBoot+thymeleaf+ajax实现局部刷新详情

    这篇文章主要介绍了SpringBoot+thymeleaf+ajax实现局部刷新详情,文章围绕主题展开详细的内容介绍具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • SpringCloud集成Nacos的使用小结

    SpringCloud集成Nacos的使用小结

    这篇文章主要介绍了SpringCloud集成Nacos的使用小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • java基于Apache FTP点断续传的文件上传和下载

    java基于Apache FTP点断续传的文件上传和下载

    本篇文章主要介绍了java基于Apache FTP点断续传的文件上传和下载,利用FTP实现文件的上传和下载,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2016-11-11
  • JVM执行引擎的项目实践

    JVM执行引擎的项目实践

    执行引擎是Java虚拟机核心的组成部分之一,本文主要介绍了JVM执行引擎的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-04-04
  • Springboot中@scheduled注解解析

    Springboot中@scheduled注解解析

    这篇文章主要介绍了Springboot中@scheduled注解解析,定时任务就是在指定时间执行程序,或周期性执行计划任务,Java中实现定时任务的方法有很多,本文从从JDK自带的一些方法来实现定时任务的需求,需要的朋友可以参考下
    2023-09-09
  • 深入理解java1.8之supplier

    深入理解java1.8之supplier

    这篇文章主要介绍了深入理解java1.8之supplier,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12

最新评论