Java 多版本环境的管理,一直是开发过程中容易踩坑的环节。JDK 8、JDK 11、JDK 17、JDK 21,项目环境各不相同,频繁切换 JDK,手动改 JAVA_HOME 太麻烦了。
这时候,如果你用的是 macOS 或 Linux 系统,请毫不费力地用上它:
✅ SDKMAN!—— Java 工具链版本管理的利器
这篇文章会一步步教你如何使用 SDKMAN 来安装、切换、维护多个版本的 JDK,并顺序说说 Maven、Gradle、Kotlin 等也能一并管理。
感谢 johnniang 提供此方案思路参考。
SDKMAN 是一个命令行工具,用来安装和管理 Java 世界的各种开发工具,支持:
📂 官网地址:https://sdkman.io
系统 | 支持情况 | 推荐程度 |
---|---|---|
macOS (Intel/Apple M系列) | ✅ 完全支持 | ⭐⭐⭐⭐⭐ |
Linux (Ubuntu, Debian, CentOS, Rocky...) | ✅ 完全支持 | ⭐⭐⭐⭐⭐ |
Windows(CMD/PowerShell) | ❌ 不支持 | 🚫 |
Windows(Git Bash/WSL) | ⭕ 可变通 | ⭐⭐(适合进阶用户) |
在开始之前,请确认你系统中已安装以下基础工具:
工具 | 检查方式 | 无法执行时安装方法 |
---|---|---|
curl | curl --version | sudo apt install curl / brew install curl |
zip、unzip | zip --version | sudo apt install zip unzip / brew install unzip |
git | git --version | sudo apt install git / brew install git |
macOS 推荐先执行:
xcode-select --install
curl -s "https://get.sdkman.io" | bash
运行完成后,终端会提示你执行一条初始化命令:
source "$HOME/.sdkman/bin/sdkman-init.sh"
可以把上面那句加到你的 .bashrc
、.zshrc
或 .profile
文件中,实现开机自动加载。
执行:
sdk version
如果能看到类似:
SDKMAN 5.16.0+123
说明安装成功。
sdk list java
你会看到一长串版本,满足:
sdk install java 8.0.392-zulu
sdk install java 21.0.2-tem
安装速度取决于你的网络环境,部分版本较大。
sdk default java 21.0.2-tem
表示以后新打开的终端窗口都默认用 JDK 21。
sdk use java 8.0.392-zulu
执行完这个命令后,再跑 java -version
就能看到你刚选的版本。
sdk uninstall java 8.0.392-zulu
使用 SDKMAN 安装 JDK 后,它会自动配置 JAVA_HOME
到:
$HOME/.sdkman/candidates/java/current
你可以验证:
echo $JAVA_HOME
一般不用你手动写 export JAVA_HOME=...
,除非你想显式声明。
SDKMAN 不只是 JDK 管理器,还能帮你管理以下工具:
sdk install maven
sdk install gradle
sdk install kotlin
sdk install sbt
sdk install micronaut
版本切换命令格式也一样:
sdk use gradle 7.6
sdk default maven 3.9.5
命令 | 作用 |
---|---|
sdk list java | 查看所有可用 JDK |
sdk install java <版本> | 安装指定版本 |
sdk use java <版本> | 临时切换版本 |
sdk default java <版本> | 设置全局默认版本 |
sdk uninstall java <版本> | 卸载 JDK |
sdk current java | 查看当前正在使用的版本 |
.sdkman
目录被误删,重新安装即可 source "$HOME/.sdkman/bin/sdkman-init.sh"
当然可以,SDKMAN 设计之初就是为了支持多个版本并行的。
不能原生使用 CMD / PowerShell,但你可以:
.msi
安装包)在 macOS 和 Linux 下,统一使用 SDKMAN 管理 Java 工具链,是目前最省事、最稳定、最推荐的方案之一。
你不再需要:
只需几条命令,安装、切换、验证一气呵成。