Skip to content

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(推荐)

bash
# 安装 OpenJDK 17
brew install openjdk@17

# 创建符号链接使系统识别
sudo ln -sfn /opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk
bash
# 安装 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):

bash
# 设置 JAVA_HOME 环境变量
echo 'export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH"' >> ~/.zshrc

# 或者使用更灵活的方式
echo 'export JAVA_HOME=$(/usr/libexec/java_home -v17)' >> ~/.zshrc

应用更改:

bash
source ~/.zshrc

方法三:验证安装

安装后验证 Java 版本:

bash
# 查看所有已安装的 Java 版本
/usr/libexec/java_home -V

# 检查当前 Java 版本
java -version

# 检查 JAVA_HOME 设置
echo $JAVA_HOME

高级管理方案

使用 SDKMAN! 管理多个 Java 版本

推荐

对于需要频繁切换不同 Java 版本的开发者,推荐使用 SDKMAN!

bash
# 安装 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 管理版本

bash
# 安装 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 仍显示旧版本

解决方案:

bash
# 检查 JAVA_HOME 设置
echo $JAVA_HOME

# 如果未正确设置,手动指定
export JAVA_HOME=$(/usr/libexec/java_home -v17)

问题: Homebrew 提示 "cask not available"

解决方案:

bash
# 更新 Homebrew 并添加 cask-versions
brew update
brew tap homebrew/cask-versions

手动安装方法

如果不想使用包管理器,也可以直接从官网下载安装:

  1. 访问 AdoptiumAzul
  2. 下载 macOS 版本的 JDK 17 (.dmg 或 .pkg 文件)
  3. 运行安装程序
  4. JDK 将安装到 /Library/Java/JavaVirtualMachines/ 目录

在 IDE 中配置

IntelliJ IDEA

  1. 打开 File > Project Structure > Project
  2. 在 SDK 选项中选择已安装的 JDK 17
  3. 确保项目使用正确的 SDK

Visual Studio Code

安装 "Java Extension Pack" 扩展,它会自动检测已安装的 JDK。

总结

在 macOS 上安装 Java 17 的主要步骤是:

  1. 使用 Homebrew 安装 OpenJDK 17
  2. 创建符号链接使系统识别新安装的 JDK
  3. 设置正确的环境变量
  4. 验证安装结果

对于需要多版本管理的开发者,推荐使用 SDKMAN! 或 jenv 工具来简化版本切换和管理。

提示

Java 17 是长期支持版本 (LTS),适合生产环境使用。定期检查并安装安全更新以保持系统安全。