sdkman!是macos上管理多版本jdk的核心工具,它在用户目录下隔离安装、一键切换版本、自动配置环境变量,并支持ide及构建工具无缝识别。
在 macos 上搭 java 开发环境,核心难点不是装 jdk,而是管好多个版本。sdkman! 就是专为这事设计的——它把所有 jdk 装在你自己的目录下,不碰系统路径,切换只要一条命令,ide 也能稳稳识别。
安装 SDKMAN! 并初始化
打开终端,执行安装命令:
- curl -s "https://get.sdkman.io" | bash
- 安装完成后,运行 source "$HOME/.sdkman/bin/sdkman-init.sh" 激活环境
- 验证是否就位:sdk version 应显示版本号(如 5.18.0)
- 为避免每次重启终端都要手动 source,把它加进 ~/.zshrc(macOS Catalina 及以后默认 shell):
echo 'source "$HOME/.sdkman/bin/sdkman-init.sh"' >> ~/.zshrc
然后执行 source ~/.zshrc
查看并安装需要的 JDK 版本
运行 sdk list java,你会看到几十个选项,带标识符如 17.0.12-tem(Temurin)、21.0.3-oracle、8.0.442-zulu 等。推荐优先选 Temurin(Eclipse 官方维护,LTS 支持好)或 Zulu(兼容性稳定)。
- 装 JDK 17:sdk install java 17.0.12-tem
- 装 JDK 21:sdk install java 21.0.3-tem
- 装 JDK 8(老项目必需):sdk install java 8.0.442-zulu
- 安装过程自动解压到 ~/.sdkman/candidates/java/,并配置好 PATH 和 JAVA_HOME
灵活切换 Java 版本
不同场景用不同命令:
- sdk default java 17.0.12-tem:设为全局默认,新打开的终端都用这个
- sdk use java 21.0.3-tem:仅当前终端生效,适合临时测试
- sdk current java:快速查看当前终端正在用哪个版本
- sdk uninstall java 8.0.442-zulu:彻底删除某个版本,不留残余
让 IDE 和构建工具认准 SDKMAN! 的 JDK
IntelliJ IDEA、VS Code、Gradle、Maven 默认可能找不到 SDKMAN! 管理的 JDK,关键一步是告诉它们路径:
- IDEA 中添加 SDK:Preferences → Project → SDKs → “+” → “JDK”,然后选择 ~/.sdkman/candidates/java/current(软链接,始终指向当前 active 版本)
- 终端中确认有效:java -version 和 javac -version 输出一致,且含 “Temurin” 或 “Zulu” 字样
- Gradle/Maven 不需额外配置,只要终端里 java -version 正确,它们就自动跟随
- 建议卸载掉 /Library/Java/JavaVirtualMachines/ 下非 SDKMAN! 安装的 JDK,避免 /usr/libexec/java_home -V 返回多个结果导致 IDE 选错
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











