最稳妥方式是直接用 Eclipse Temurin 的 .pkg 安装包,它自动完成注册和路径部署;若需让 java 命令默认指向 Temurin JDK 21,优先通过设置 JAVA_HOME 和 PATH 实现,仅在特定兼容性场景下才手动创建符号链接。

直接用 Eclipse Temurin 的 .pkg 安装包是最稳妥的方式,它会自动完成注册和路径部署,无需手动 symlink —— 但如果你需要让 java 命令默认指向 Temurin JDK 21(尤其当系统里已有其他 JDK),创建符号链接是常见补充操作。
下载并安装 Temurin JDK 21
访问 https://www.php.cn/link/e387385ebe0dbeefed3e8e9f3968aaba → 选择版本 “21”、平台 “macOS”、架构按芯片类型选(Apple Silicon 选 aarch64,Intel 选 x64)→ 下载 .pkg 文件 → 双击运行安装向导。安装完成后,JDK 会被放入:
/Library/Java/JavaVirtualMachines/temurin-21.jdk(注意:文件夹名可能含 build 号,如 temurin-21.0.3+9.jdk,以实际为准)
验证是否被系统识别
终端执行:
/usr/libexec/java_home -V
应看到类似输出:
21.0.3, x86_64: "Eclipse Temurin JDK 21" /Library/Java/JavaVirtualMachines/temurin-21.0.3+9.jdk/Contents/Home若没出现,说明未注册成功,可尝试重启终端或重装 pkg。
设置 JAVA_HOME 并启用 java/javac
编辑 ~/.zshrc(macOS 默认 shell):
Java Maven 项目审查工作流的通用输入处理。当 Java Maven 项目以 ZIP压缩包或 GitLab 仓库 URL 形式提供且需要...时使用。
- 添加这两行(动态获取路径,避免硬编码):
export JAVA_HOME=$(/usr/libexec/java_home -v 21) export PATH=$JAVA_HOME/bin:$PATH
保存后执行:source ~/.zshrc
再运行 java -version 和 javac -version,应显示 Temurin 21 的版本信息。
是否需要手动创建符号链接?
通常不需要。Temurin pkg 安装后,/usr/bin/java 实际调用的是 macOS 的 Java 路由机制(通过 /usr/libexec/java_home),而非直接依赖 /usr/bin 下的软链。
但如果你遇到以下情况,才考虑手动 symlink:
- 某些老旧脚本或工具绕过
JAVA_HOME,硬依赖/usr/bin/java指向特定 JDK -
which java返回的是系统自带或其他 JDK 路径,且/usr/libexec/java_home -v 21已确认有效
此时可安全覆盖(需管理员权限):
sudo rm -f /usr/bin/java /usr/bin/javac /usr/bin/jar sudo ln -sf "/Library/Java/JavaVirtualMachines/temurin-21.0.3+9.jdk/Contents/Home/bin/java" /usr/bin/java sudo ln -sf "/Library/Java/JavaVirtualMachines/temurin-21.0.3+9.jdk/Contents/Home/bin/javac" /usr/bin/javac sudo ln -sf "/Library/Java/JavaVirtualMachines/temurin-21.0.3+9.jdk/Contents/Home/bin/jar" /usr/bin/jar
⚠️ 注意:替换前请确认路径中 jdk 文件夹名完全一致(可用 ls /Library/Java/JavaVirtualMachines/ 查看);不建议对 /usr/bin 频繁操作,优先靠 JAVA_HOME + PATH 管理更安全稳定。

















