Skip to content

Apple Silicon (M1) 芯片上的 Java/JDK 安装指南 ​

问题概述 ​

Apple Silicon(Apple 芯片,如 M1、M2 系列)是基于 ARM 架构的处理器,这与之前 Intel Mac 使用的 x86 架构不同。因此,传统的 x86 版本 Java JDK 无法在 Apple Silicon 芯片上原生运行,需要专门的 ARM 版本。

解决方案 ​

目前有多种方法可以在 Apple Silicon Mac 上安装 Java JDK,以下是几种主要的方式:

方法一:使用 Homebrew 安装 OpenJDK ​

Homebrew 是 macOS 上流行的包管理器,可以方便地安装和管理 OpenJDK。

bash
# 安装 Homebrew(如果尚未安装)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# 安装 OpenJDK
brew install openjdk

安装完成后,验证安装:

bash
# 验证 Java 版本
$(brew --prefix openjdk)/bin/java --version

# 验证是否为 ARM64 架构
file $(brew --prefix openjdk)/bin/java
# 输出应为:Mach-O 64-bit executable arm64

注意

安装后可能需要创建符号链接才能使系统识别 Java:

bash
sudo ln -sfn /opt/homebrew/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk

方法二:使用 SDKMAN 管理多个 JDK 版本 ​

SDKMAN 是一个管理多个 SDK 版本的工具,特别适合需要切换不同 Java 版本的开发者。

bash
# 安装 SDKMAN
curl -s "https://get.sdkman.io" | bash

# 重新打开终端或运行
source "$HOME/.sdkman/bin/sdkman-init.sh"

# 确保配置为兼容 M1
vim ~/.sdkman/etc/config
# 设置:sdkman_rosetta2_compatible=false

# 查看可用的 JDK 版本
sdk list java

# 安装指定版本(例如 Zulu 11)
sdk install java 11.0.11-zulu

方法三:直接从官网下载安装 ​

各大 JDK 供应商都提供了 Apple Silicon 原生版本:

Oracle JDK ​

  1. 访问 Oracle Java 下载页面
  2. 选择最新版本的 JDK
  3. 下载 ARM 64 DMG Installer
  4. 按照图形界面安装

Azul Zulu JDK ​

  1. 访问 Azul Zulu 下载页面
  2. 选择合适的 JDK 版本下载
  3. 安装 DMG 包

BellSoft Liberica JDK ​

  1. 访问 BellSoft 下载页面
  2. 选择适合的版本下载安装

兼容性注意事项 ​

重要提示

虽然 Apple Silicon 原生 JDK 已经可用,但在使用涉及本地代码(JNI)的库时可能会遇到兼容性问题:

  1. 本地库依赖:许多 Java 库(如 Snappy、Parquet、Avro)依赖本地 C++ 代码,这些库可能需要特定编译的 ARM64 版本
  2. 错误示例:可能会出现类似 no native library is found for os.name=Mac and os.arch=aarch64 的错误
  3. 解决方案:确保所有依赖的本地库都有 ARM64 版本,或使用 Rosetta 运行 Intel 版本 JDK
bash
# 如果需要运行 Intel 版本 JDK(通过 Rosetta)
arch -x86_64 /path/to/intel/jdk/bin/java -version

验证安装 ​

无论使用哪种安装方法,都可通过以下命令验证:

bash
# 检查 Java 版本
java -version

# 检查架构(应显示 arm64)
/usr/libexec/java_home -V

开发工具支持 ​

主流 Java IDE 均已支持 Apple Silicon:

  • IntelliJ IDEA:原生支持 ARM64,内置 JetBrains Runtime
  • Eclipse:提供 ARM64 版本
  • VS Code:通过扩展支持 Java 开发

总结 ​

Apple Silicon Mac 用户现在有多种选择来安装和使用 Java:

  1. 推荐:使用 Homebrew 安装 OpenJDK,简单方便
  2. 多版本管理:使用 SDKMAN 管理多个 JDK 版本
  3. 厂商版本:直接下载 Oracle、Azul 或 BellSoft 的 ARM64 版本
  4. 兼容性:注意本地库的 ARM64 支持,必要时使用 Rosetta

随着生态系统的不断完善,Apple Silicon 上的 Java 开发体验已经越来越成熟,性能也得到了显著提升。