macOS 安装 Java 17 完整指南
问题描述
许多 macOS 用户在尝试安装 Java 17 时遇到一个常见问题:虽然通过 Homebrew 成功安装了 OpenJDK 17,但系统仍然使用旧版本的 Java(如 Java 13)。即使输入 java -version
显示的是旧版本,而 brew install java
提示 Java 17 已经安装。
这是因为 Homebrew 安装的 OpenJDK 是 "keg-only"(独立安装)的,不会自动覆盖系统默认的 Java 版本。
解决方案
方法一:使用 Homebrew 安装并配置 OpenJDK 17(推荐)
# 安装 OpenJDK 17
brew install openjdk@17
# 创建符号链接使系统识别
sudo ln -sfn /opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk
# 安装 OpenJDK 17
brew install openjdk@17
# 创建符号链接使系统识别
sudo ln -sfn /usr/local/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk
方法二:设置环境变量
安装完成后,将以下配置添加到 shell 配置文件中(.zshrc
或 .bash_profile
):
# 设置 JAVA_HOME 环境变量
echo 'export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH"' >> ~/.zshrc
# 或者使用更灵活的方式
echo 'export JAVA_HOME=$(/usr/libexec/java_home -v17)' >> ~/.zshrc
应用更改:
source ~/.zshrc
方法三:验证安装
安装后验证 Java 版本:
# 查看所有已安装的 Java 版本
/usr/libexec/java_home -V
# 检查当前 Java 版本
java -version
# 检查 JAVA_HOME 设置
echo $JAVA_HOME
高级管理方案
使用 SDKMAN! 管理多个 Java 版本
推荐
对于需要频繁切换不同 Java 版本的开发者,推荐使用 SDKMAN!
# 安装 SDKMAN!
curl -s "https://get.sdkman.io" | bash
# 重新打开终端或执行
source "$HOME/.sdkman/bin/sdkman-init.sh"
# 查看可安装的 Java 版本
sdk list java
# 安装 Java 17
sdk install java 17.0.0-tem
# 切换 Java 版本
sdk use java 17.0.0-tem
使用 jenv 管理版本
# 安装 jenv
brew install jenv
# 添加 Java 版本到 jenv
jenv add /Library/Java/JavaVirtualMachines/openjdk-17.jdk/Contents/Home
# 设置全局默认版本
jenv global 17.0
解决常见问题
注意事项
- 确保符号链接路径正确,区分 Apple Silicon 和 Intel Mac 的不同路径
- 安装后需要重启终端或执行
source
命令使环境变量生效 - 如果遇到权限问题,在命令前添加
sudo
问题: 安装后 java -version
仍显示旧版本
解决方案:
# 检查 JAVA_HOME 设置
echo $JAVA_HOME
# 如果未正确设置,手动指定
export JAVA_HOME=$(/usr/libexec/java_home -v17)
问题: Homebrew 提示 "cask not available"
解决方案:
# 更新 Homebrew 并添加 cask-versions
brew update
brew tap homebrew/cask-versions
手动安装方法
如果不想使用包管理器,也可以直接从官网下载安装:
- 访问 Adoptium 或 Azul
- 下载 macOS 版本的 JDK 17 (.dmg 或 .pkg 文件)
- 运行安装程序
- JDK 将安装到
/Library/Java/JavaVirtualMachines/
目录
在 IDE 中配置
IntelliJ IDEA
- 打开 File > Project Structure > Project
- 在 SDK 选项中选择已安装的 JDK 17
- 确保项目使用正确的 SDK
Visual Studio Code
安装 "Java Extension Pack" 扩展,它会自动检测已安装的 JDK。
总结
在 macOS 上安装 Java 17 的主要步骤是:
- 使用 Homebrew 安装 OpenJDK 17
- 创建符号链接使系统识别新安装的 JDK
- 设置正确的环境变量
- 验证安装结果
对于需要多版本管理的开发者,推荐使用 SDKMAN! 或 jenv 工具来简化版本切换和管理。
提示
Java 17 是长期支持版本 (LTS),适合生产环境使用。定期检查并安装安全更新以保持系统安全。