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

由于SDKMAN安装过程需要使用zip命令,而Git for Windows默认仅提供unzip功能,因此需要手动添加zip支持。
GnuWin Files网站提供了多种GNU工具的Windows版本,包括我们需要的zip工具。
在该站点中可以找到zip工具的二进制压缩包。
为方便用户获取必要工具,我们准备了以下工具包下载链接:
完成下载后,请按照以下步骤进行配置:
注意:必须确保文件被正确复制到usrbin目录,这样才能在Git Bash中正常使用zip命令。
打开Git Bash窗口,执行以下命令进行验证:
zip --version
如果能够正常显示版本信息,说明配置成功,可以继续安装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,则表示配置成功。
执行以下命令进行自动安装:
curl -s "https://get.sdkman.io" | bash
安装完成后,按照提示执行初始化命令:
source "$SDKMAN_DIR/bin/sdkman-init.sh"
通过以下命令检查安装结果:
sdk version
若能显示SDKMAN版本号,说明安装成功。
SDKMAN最强大的功能之一就是管理多个JDK版本。
sdk list java
该命令会显示所有可用JDK版本,其中:
以安装OpenJDK 17为例:
sdk install java 17.0.8-tem
再次运行sdk list java命令,已安装版本会显示>标识。
使用以下命令查看特定JDK版本的安装路径:
sdk home java 17.0.8-tem
该命令会输出对应JDK版本的实际安装目录。
注意:请使用管理员权限运行Git Bash,否则无法正常创建symlink。
非管理员用户切换版本时会出现提示"cannot create current symlink, fall back to copy!"。
虽然不影响使用,但建议使用管理员权限操作以获得完整功能。
使用以下命令切换默认JDK版本:
sdk default java 17.0.8-tem
提示:输入sdk default java后按两次tab键可列出所有已安装版本。
以下命令仅在当前会话中临时切换版本:
sdk use java 11.0.20-tem
sdk uninstall java 11.0.20-tem
通过SDKMAN安装的JDK默认只能在Git Bash中使用,如需在Windows原生环境中使用,需要配置系统环境变量。
在Windows CMD中执行java -version会提示"不是内部或外部命令"。
建议将系统环境变量指向SDKMAN的当前默认版本目录:
关键说明:
重新打开CMD窗口,执行:
java -version
若能正常显示版本信息,说明配置成功。
在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等多种开发环境,极大提升开发效率。