Windows平台SDKMAN安装使用指南:JDK多版本管理详解

作者:袖梨 2026-05-20

前言

SDKMAN作为一款高效的命令行工具,能够帮助开发者轻松管理多个版本的软件开发套件。虽然它在Linux和macOS系统上配置简单,但在Windows环境中需要通过Git Bash等模拟环境来实现功能。本文将详细介绍如何通过Git Bash在Windows上安装和使用SDKMAN来管理JDK版本。

Windows上安装并使用SDKMAN详细教程(JDK多版本管理)

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

由于SDKMAN安装过程需要使用zip命令,而Git for Windows默认仅提供unzip功能,因此需要手动添加zip支持。

1. GnuWin Files 下载地址

GnuWin Files网站提供了多种GNU工具的Windows版本,包括我们需要的zip工具。

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

在该站点中可以找到zip工具的二进制压缩包。

2. 使用便捷下载链接

为方便用户获取必要工具,我们准备了以下工具包下载链接:

  1. zip 工具包:点击下载 zip-3.0-bin.zip
  2. bzip2 工具包:点击下载 bzip2-1.0.5-bin.zip

3. 配置 Git Bash 支持 zip 命令

完成下载后,请按照以下步骤进行配置:

  1. 解压下载的两个zip文件。
  2. 将zip.exe和bzip2.dll文件复制到Git安装目录下的usrbin文件夹。
  3. 通常情况下,Git安装目录位于:C:Program FilesGitusrbin

注意:必须确保文件被正确复制到usrbin目录,这样才能在Git Bash中正常使用zip命令。

4. 验证配置是否成功

打开Git Bash窗口,执行以下命令进行验证:

zip --version

如果能够正常显示版本信息,说明配置成功,可以继续安装SDKMAN。

二、安装 SDKMAN

完成准备工作后,我们开始正式安装SDKMAN。

1. 设置 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

执行以下命令进行自动安装:

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

安装完成后,按照提示执行初始化命令:

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

3. 验证安装是否成功

通过以下命令检查安装结果:

sdk version

若能显示SDKMAN版本号,说明安装成功。

三、使用 SDKMAN 管理 JDK

SDKMAN最强大的功能之一就是管理多个JDK版本。

1. 查看 JDK 版本列表

sdk list java

该命令会显示所有可用JDK版本,其中:

  1. Use列显示>>>表示当前使用的版本
  2. Status列显示installed表示已安装版本
  3. 无标记的表示可安装但尚未安装的版本

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。

非管理员用户切换版本时会出现提示"cannot create current symlink, fall back to 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原生环境中使用,需要配置系统环境变量。

1. 问题现象

在Windows CMD中执行java -version会提示"不是内部或外部命令"。

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

建议将系统环境变量指向SDKMAN的当前默认版本目录:

  1. 右键"此电脑" → "属性" → "高级系统设置"
  2. 点击"环境变量"
  3. 在"系统变量"中新建JAVA_HOME变量:
    1. 变量名:JAVA_HOME
    2. 变量值:D:JavaDevsdkmancandidatesjavacurrent
  4. 编辑系统变量中的Path变量
  5. 添加新条目:%JAVA_HOME%bin
  6. 保存所有更改

关键说明:

  1. current目录会自动指向当前默认版本
  2. 通过SDKMAN切换版本时,current目录会自动更新
  3. 这样配置可以保持版本切换功能在Windows环境中同步

3. 验证配置结果

重新打开CMD窗口,执行:

java -version

若能正常显示版本信息,说明配置成功。

4. 验证版本切换功能

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

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

# CMD中验证
java -version

注意:由于Windows环境变量缓存机制,可能需要重新打开CMD窗口才能看到变更。

五、结语

通过本教程,您已经掌握了在Windows系统中使用Git Bash安装配置SDKMAN的方法,以及如何利用它高效管理多个JDK版本。这套工具不仅适用于Java开发,还能管理Groovy、Scala等多种开发环境,极大提升开发效率。

相关文章

精彩推荐