macos java开发环境管理关键在sdkman!:安装后可查版本、按需安装jdk 8/17/21,支持全局/会话/项目级切换,并与intellij、vs code无缝集成。
macos 上装 java 开发环境,关键不在“装”,而在“管”——尤其当你同时要跑 jdk 8 的老项目、jdk 17 的 spring boot 服务、以及 jdk 21 的新特性实验时。手动改 java_home、反复编辑配置文件、ide 不识别、终端新开不生效……这些问题,用 sdkman! 几条命令就能绕开。
查当前 Java 状态,先摸清底细
打开终端,先确认现状:
-
java -version:看当前生效的运行时版本 -
which java:查java命令实际指向哪(常暴露系统自带或旧版残留) -
/usr/libexec/java_home -V:列出所有已安装在/Library/Java/JavaVirtualMachines/下的 JDK(但注意:SDKMAN! 安装的不会出现在这里)
用 SDKMAN! 统一管理多版本 JDK
它把每个 JDK 装在 ~/.sdkman/candidates/java/ 下,不污染系统路径,切换干净,IDE(IntelliJ、VS Code)也能自动识别。
- 安装:执行
curl -s "https://get.sdkman.io" | bash,再运行source "$HOME/.sdkman/bin/sdkman-init.sh" - 写入 shell 配置(推荐 zsh):
echo 'source "$HOME/.sdkman/bin/sdkman-init.sh"' >> ~/.zshrc && source ~/.zshrc - 查看可用版本:
sdk list java,重点关注带-tem(Temurin,Eclipse 官方维护,LTS 支持好)或-zulu(Azul 提供,M1/M2 兼容稳定)的标识 - 安装常用版本:
sdk install java 17.0.12-tem、sdk install java 21.0.3-tem、sdk install java 8.0.442-zulu
按需切换 JDK 版本,场景分明
不同粒度,对应不同命令:
- 全局默认(新开终端都用):
sdk default java 17.0.12-tem - 当前终端会话临时切换:
sdk use java 21.0.3-tem(关闭终端即失效) - 项目级锁定(推荐):进到项目根目录,运行
sdk local java 8.0.442-zulu,会在该目录生成.sdkmanrc,下次进入自动加载
验证与 IDE 配合要点
切换后别急着写代码,先验证:
- 运行
java -version和javac -version,确保一致且符合预期 - IntelliJ:Preferences → Project → Project SDK → 点击小齿轮 → Add JDK → 选
~/.sdkman/candidates/java/xxx下对应版本的Contents/Home - VS Code:安装 Extension Pack for Java,打开项目后底部状态栏点击 Java version,选择 SDKMAN! 安装的路径即可
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











