在 macOS 上用 Homebrew 管理多 Java 版本的核心是“安装分离 + 工具接管”:先用 brew install openjdk@X 独立安装各 LTS 版本,再通过 sudo ln -sfn 创建系统级符号链接并用 jenv add 注册路径,最后支持 jenv global/shell/local 三粒度切换,全程命令行、可复现。
在 macos 上用 homebrew 安装并管理多个 java 开发版本,核心是“安装分离 + 工具接管”:每个 jdk 版本独立安装、路径不重叠,再用 jenv 统一注册和切换,避免手动改 java_home 或反复编辑 shell 配置。
用 Homebrew 安装多个 OpenJDK 版本
Homebrew 的 openjdk@X 公式稳定、更新及时,推荐优先使用(而非已弃用的 cask 方式):
- 安装 JDK 8:
brew install openjdk@8 - 安装 JDK 11:
brew install openjdk@11 - 安装 JDK 17:
brew install openjdk@17 - 安装 JDK 21:
brew install openjdk@21
安装后,JDK 默认放在 /opt/homebrew/opt/openjdk@X/libexec/openjdk.jdk(Apple Silicon)或 /usr/local/opt/openjdk@X/libexec/openjdk.jdk(Intel),但此时还不会出现在 /usr/libexec/java_home -V 列表里——需要后续注册。
把 JDK 注册进系统并加入 jEnv 管理
Homebrew 安装的 JDK 不会自动被系统识别,需两步补全:
- 先创建符号链接,让系统发现它:
sudo ln -sfn /opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk
对其他版本同理,替换路径中的@11、@8等 - 再用 jEnv 把它们纳入统一调度:
jenv add /opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk/Contents/Homejenv add /opt/homebrew/opt/openjdk@11/libexec/openjdk.jdk/Contents/Homejenv add /opt/homebrew/opt/openjdk@8/libexec/openjdk.jdk/Contents/Home
执行 jenv versions 可看到所有已添加版本,带 * 的是当前生效版本。
立即学习“Java免费学习笔记(深入)”;
让 macOS 自动化像说话一样简单 —— 用代码控制你的 Mac,无需学习 AppleScript 系统要求 macOS 14+ (Sonoma) Python 3.9+ 需要开启:辅助功能 + 屏幕录制权限
设置全局或项目级 Java 版本
jEnv 支持三种粒度的切换,按需选用:
-
全局默认版本(整个终端会话生效):
jenv global 17.0或jenv global 11.0 -
当前 Shell 会话临时切换:
jenv shell 8.0(退出终端即失效) -
项目目录级绑定(进入该目录自动切版本):
进入项目根目录 → 运行jenv local 11.0→ 自动生成.java-version文件
每次切换后,运行 java -version 和 $JAVA_HOME 即可验证是否生效。
验证与日常维护
常用检查命令:
- 列出所有已注册 JDK:
/usr/libexec/java_home -V - 查看 jEnv 管理的版本列表:
jenv versions - 查看当前 JAVA_HOME 实际指向:
echo $JAVA_HOME - 卸载某个版本(如 JDK 8):
brew uninstall openjdk@8,再运行jenv rehash同步清理
整个流程全部基于命令行,无图形依赖,配置可备份、可复现,适合个人开发和团队标准化环境部署。

















