跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Javajava

Windows 安装 SDKMAN 管理 JDK 多版本

介绍在 Windows 系统下通过 Git Bash 环境安装 SDKMAN 工具,并配置环境变量以管理 JDK 多版本的方法。内容包括安装前的 zip 命令配置、SDKMAN 安装流程、JDK 版本查看与切换、以及如何在 CMD 中同步环境变量。

云朵棉花糖发布于 2026/3/23更新于 2026/9/107.5K 浏览

SDKMAN(Software Development Kit Manager)是一个用于管理和切换不同版本软件开发工具包(如 Java、Groovy、Scala 等)的命令行工具。在类 Unix 系统(Linux/macOS)中使用非常广泛,但在 Windows 上需要借助类似 Git Bash 的 Bash 模拟环境来运行。

SDKMAN 默认并不能直接在 Windows 原生 CMD 或 PowerShell 中运行,需要使用模拟的 Bash 环境(如 Git Bash)。本文将详细介绍如何在 Windows 上借助 Git Bash 安装并使用 SDKMAN 管理 JDK。

一、准备工作:配置 Git Bash 支持 zip 命令

SDKMAN 在安装时依赖 zip 命令,而 Git for Windows 默认只自带 unzip 命令,不包含 zip 命令,因此我们需要为 Git Bash 手动添加 zip 功能。

1. GnuWin32 工具下载

我们可以从 GnuWin32 站点下载适用于 Windows 的 GNU 工具,该站点提供了许多常用 GNU 工具的 Windows 兼容版本。

  • 站点地址: https://sourceforge.net/projects/gnuwin32/files/

在该站点中,可下载 zip 的二进制压缩包。

2. 配置 Git Bash 支持 zip 命令

下载完成后,请按以下步骤操作:

  1. 解压缩上述两个 zip 文件。
  2. 将 zip.exe 和 bzip2.dll 文件拷贝至 Git 安装目录下的 \usr\bin 文件夹中。
  3. 一般来说,Git 安装目录为:C:\Program Files\Git\usr\bin

⚠️ 注意:确保文件被写入 usr\bin 目录,这样才能在 Git Bash 中识别 zip 命令。

3. 验证配置是否成功

打开 Git Bash 窗口,运行以下命令检查是否可以正常识别:

zip --version

如果命令能正常输出版本信息,则表示配置成功,我们可以继续进行 SDKMAN 的安装。

二、安装 SDKMAN

接下来,我们正式开始 SDKMAN 的安装流程。

1. 设置 SDKMAN 目录环境变量并使其生效

首先需要指定 SDKMAN 的安装目录(注意:此时不要手动创建该目录,SDKMAN 会自动创建):

export SDKMAN_DIR="/d/JavaDev/sdkman"

你也可以将该命令加入 .bashrc 或 .bash_profile 文件中,以实现永久配置(建议)。

echo 'export SDKMAN_DIR="/d/JavaDev/sdkman"' >> ~/.bashrc

添加环境变量到配置文件后,需要重新加载配置文件使其生效:

source ~/.bashrc

然后验证环境变量是否设置成功:

echo $SDKMAN_DIR

如果输出 /d/JavaDev/sdkman,则表示环境变量配置成功。

2. 安装 SDKMAN

执行以下命令自动下载并安装 SDKMAN:

curl -s "https://get.sdkman.io" | bash

安装完成后,会提示你执行一行命令来初始化 SDKMAN,示例如下:

source "$SDKMAN_DIR/bin/sdkman-init.sh"

执行它后即可激活 SDKMAN。

3. 验证安装是否成功

执行以下命令检查 SDKMAN 是否安装成功:

sdk version

如果输出 SDKMAN 的版本号,则安装成功。

三、使用 SDKMAN 管理 JDK

SDKMAN 最核心的功能之一是管理 JDK 的安装与切换。

1. 查看 JDK 版本列表
sdk list java

该命令会显示所有可用的 JDK 版本,包括:

  • Use 列显示 >>> 表示当前正在使用的版本
  • Status 列显示 installed 表示已安装的版本
  • 无任何标识的表示可安装但尚未安装的版本
2. 安装指定版本 JDK

例如安装 OpenJDK 17:

sdk install java 17.0.8-tem
3. 查看当前已安装的 JDK

再次运行 sdk list java 命令,已安装的版本会显示 > 标识。

4. 查看 JDK 安装路径

使用以下命令查看指定 JDK 版本的安装路径:

sdk home java 17.0.8-tem

该命令会输出对应 JDK 版本的实际安装目录路径。

5. 切换默认 JDK 版本

请使用管理员运行 Git Bash,否则不能正常创建 symlink。

非管理员用户使用命令切换 sdk 版本时会出现提示 'cannot create current symlink, fall back to copy!'。 从提示可以看出,创建软连接失败,改为使用拷贝 sdk 的方式,这虽然不影响最终使用,但是我们还是推荐使用管理员以方式操作(正确的 symlink 可以使用 sdk current java 查看当前版,非管理员方式的 copy 结果查看不了当前版本)。

使用该命令切换默认 JDK(重启会话后仍然有效):

sdk default java 17.0.8-tem

小技巧:命令行输入 sdk default java 后按两次 tab 键会列出所有已经安装的版本,方便拷贝切换。

6. 临时切换 JDK 版本

以下命令是临时切换,只在当前会话生效:

sdk use java 11.0.20-tem
7. 卸载 JDK
sdk uninstall java 11.0.20-tem

四、配置系统环境变量

通过 SDKMAN 安装的 JDK 只能在 Git Bash 环境中使用。如果需要在 Windows 原生 CMD 或 PowerShell 中使用 java 命令,需要配置系统环境变量。

1. 问题现象

在 Windows CMD 命令行中执行以下命令会提示'不是内部或外部命令':

java -version
2. 解决方案:配置 JAVA_HOME 和 Path 环境变量

为了保持 SDKMAN 的版本切换功能,我们应该将系统环境变量指向 SDKMAN 的当前默认版本目录:

  1. 右键'此电脑' → '属性' → '高级系统设置'
  2. 点击'环境变量'
  3. 在'系统变量'中点击'新建',添加 JAVA_HOME 环境变量:
    • 变量名:JAVA_HOME
    • 变量值:D:\JavaDev\sdkman\candidates\java\current
  4. 在'系统变量'中找到'Path'变量,选中后点击'编辑'
  5. 点击'新建',添加:%JAVA_HOME%\bin
  6. 点击'确定'保存所有更改

⚠️ 关键点:

  • current 目录指向当前通过 sdk default 命令设置的默认版本
  • 当通过 SDKMAN 切换默认版本时,current 目录会自动指向新的默认版本
  • 这样配置可以保持 SDKMAN 的版本切换功能在 Windows 系统环境中同样生效
3. 验证配置结果

重新打开 CMD 窗口,执行:

java -version

如果能正常显示 Java 版本信息,则配置成功。

4. 验证版本切换功能

在 Git Bash 中切换 JDK 版本后,在 CMD 中验证是否同步:

# 在 Git Bash 中切换默认版本
sdk default java 11.0.20-tem

# 在 CMD 中验证(需要重新打开 CMD 窗口)
java -version

⚠️ 注意:由于 Windows 系统环境变量的缓存机制,可能需要重新打开 CMD 窗口才能看到版本切换的效果。

五、结语

通过以上步骤,你已成功在 Windows 系统中借助 Git Bash 安装并配置了 SDKMAN,并掌握其管理 JDK 的基本命令。未来你可以用它来轻松管理多版本的 Java、Groovy、Scala 等多种开发工具,提升开发效率。

如需进一步学习 SDKMAN 的高级使用方法,欢迎参考其 官方文档。

目录

  1. 一、准备工作:配置 Git Bash 支持 zip 命令
  2. 1. GnuWin32 工具下载
  3. 2. 配置 Git Bash 支持 zip 命令
  4. 3. 验证配置是否成功
  5. 二、安装 SDKMAN
  6. 1. 设置 SDKMAN 目录环境变量并使其生效
  7. 2. 安装 SDKMAN
  8. 3. 验证安装是否成功
  9. 三、使用 SDKMAN 管理 JDK
  10. 1. 查看 JDK 版本列表
  11. 2. 安装指定版本 JDK
  12. 3. 查看当前已安装的 JDK
  13. 4. 查看 JDK 安装路径
  14. 5. 切换默认 JDK 版本
  15. 6. 临时切换 JDK 版本
  16. 7. 卸载 JDK
  17. 四、配置系统环境变量
  18. 1. 问题现象
  19. 2. 解决方案:配置 JAVA_HOME 和 Path 环境变量
  20. 3. 验证配置结果
  21. 4. 验证版本切换功能
  22. 在 Git Bash 中切换默认版本
  23. 在 CMD 中验证(需要重新打开 CMD 窗口)
  24. 五、结语

更多推荐文章

查看全部
  • 基于星辰 RPA 实现小红书自动发文机器人
  • Stable Diffusion 各版本技术详解
  • 前端表单验证策略:防止无效数据提交
  • synchronized 底层原理详解:字节码、对象头与锁升级
  • OpenClaw 多会话管理与子代理功能详解
  • Linux Ext 系列文件系统原理与实战
  • LLaMaFactory 基于魔搭社区免费 GPU 微调大模型教程
  • 基于 Windows 环境的 wnmp web 开发环境的研究与实践开题报告2
  • 2026 届学位论文 AIGC 检测率要求汇总及应对策略
  • 前端数据可视化工具比较与选型建议
  • Elasticsearch 与 Kibana 实战:安装部署及 C++ 客户端封装
  • RISC-V 开源处理器实战:从 Verilog RTL 设计到 FPGA 原型验证
  • 大模型 RAG 技术详解:架构、优势与实战应用
  • HTTP 请求方式详解:GET、POST 及其他方法
  • 基于 Next.js 构建支持 TokenP 钱包登录的 DApp 前端实战
  • Git 入门实战:配置、提交、版本回退与文件恢复
  • 什么是前端?零基础入门指南
  • Home Assistant 界面美化指南:打造个性化智能家居
  • LFM2.5-1.2B-Thinking-GGUF 模型原理与 llama.cpp 运行机制
  • 飞算 JavaAI 智能编程助手功能介绍

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online