SDKMAN工具来实现JDK版本的管理
什么是 SDKMAN?
在 Java 开发中,我们经常需要管理多个版本的 JDK、Maven 或 Gradle。例如:
- 某个老项目依赖 JDK 8
- 新项目需要 JDK 17
- 有时还要测试 OpenJDK 等不同发行版
手动安装和切换比较麻烦,而SDKMAN正是为了解决这个问题而诞生的。
SDKMAN 简介
SDKMAN! 是一个在 Linux、macOS(以及 Windows 的 Bash 环境)中用于安装、管理和切换多版本 SDK
的命令行工具。如常见SDK:Java/JDK、Maven、Gradle、Groovy、Scala, Kotlin等。
本文将介绍如何在 Windows 环境下通过 Git Bash 安装和使用 SDKMAN。
环境准备
1. 安装 Git for Windows
首先需要安装 Git for Windows,它提供了我们所需的 Git Bash 终端环境:
- 访问 Git for Windows 官网
- 下载并运行安装程序
- 安装过程中确保勾选 “Git Bash Here” 选项
- 完成安装后,在任意文件夹右键即可打开 Git Bash
2.安装 zip命令
Git Bash默认缺少zip依赖,需要我们手动下载,增加该命令
1.下载 zip-3.0-bin.zip 与 bzip2-1.0.5-bin.zip 。
2.将两个压缩包解压,拷贝zip.exe和bip2.dll到Git安装目录下的\usr\bin
目录下
3.在 Git Bash 中安装 SDKMAN
在 Git Bash 中执行以下命令进行自动安装:
curl -s "https://get.sdkman.io" | bash
该命令会自动下载并安装 SDKMAN 脚本到你的用户目录中(通常是 ~/.sdkman)。
安装完成后,你会看到提示类似:
All done!You are subscribed to the STABLE channel.Please open a new terminal, or run the following in the existing one:source "/c/Users/你的用户名/.sdkman/bin/sdkman-init.sh"Then issue the following command:sdk helpEnjoy!!!
4. 手动初始化
安装完成后,需要初始化 SDKMAN 环境。在 Git Bash 中执行:
source "/c/Users/你的用户名/.sdkman/bin/sdkman-init.sh"
注意:将路径中的 你的用户名 替换为你的实际 Windows 用户名。
然后验证是否安装成功:
sdk version
显示版本号,说明安装成功。
三、SDKMAN 常用命令
查看可用的 Java 版本
sdk list java
输出中会列出不同厂商、不同版本的 JDK:
================================================================================
Available Java Versions for Cygwin
================================================================================Vendor | Use | Version | Dist | Status | Identifier
--------------------------------------------------------------------------------Corretto | | 25 | amzn | | 25-amzn| | 24.0.2 | amzn | | 24.0.2-amzn| | 23.0.2 | amzn | | 23.0.2-amzn| | 21.0.8 | amzn | | 21.0.8-amzn| | 17.0.16 | amzn | | 17.0.16-amzn| | 11.0.28 | amzn | | 11.0.28-amzn| | 8.0.462 | amzn | | 8.0.462-amznDragonwell | | 21.0.8 | albba | | 21.0.8-albba| | 17.0.16 | albba | | 17.0.16-albba| | 11.0.28 | albba | | 11.0.28-albba| | 8.0.462 | albba | | 8.0.462-albbaGluon | | 22.1.0.1.r17 | gln | | 22.1.0.1.r17-gln| | 22.1.0.1.r11 | gln | | 22.1.0.1.r11-gln| | 22.0.0.3.r17 | gln | | 22.0.0.3.r17-gln
...
安装 Java
安装特定的 Java 版本:
# 安装 Oracle 17
sdk install java 17.0.12-oracle
切换 Java 版本
# 查看已安装的版本
sdk list java | grep "installed"# 临时切换版本(仅当前会话有效)
sdk use java 17.0.12-oracle# 设置默认版本
sdk default java 17.0.12-oracle
查看Java 版本
java -version
其他实用操作命令
# 卸载特定版本
sdk uninstall java 17.0.12-oracle# 查看当前正在使用的 SDK 版本
sdk current java# 查看某版本 SDK 的安装路径
sdk home java 17.0.11-tem
注意事项
- 如果要让 IDEA工具添加SDK
路径通常为:/c/Users/用户名/.sdkman/candidates/java/版本号
- Git Bash 与 PowerShell 是隔离的环境
SDKMAN 只会影响当前 Bash 环境。如果你在 PowerShell / CMD 中执行 java -version,不会生效。
建议:平时开发(如使用 IntelliJ IDEA)时,在项目中手动指定 JDK 路径到
/c/Users/用户名/.sdkman/candidates/java/版本号
,或手动添加Path环境变量 - 默认情况下 SDK 会安装在用户目录下,你可以自定义安装位置:
export SDKMAN_DIR="/usr/local/sdkman" && curl -s "https://get.sdkman.io" | bash
参考资料
- 官方网站:https://sdkman.io/
- GitHub 项目:https://github.com/sdkman/sdkman-cli