M1 Mac必须安装ARM64架构JDK,通过uname -m确认arm64,选用Adoptium/Azul/Amazon的aarch64版本,配置JAVA_HOME到~/.zshrc并source生效,IDE需手动指定含arm64路径的JDK,Gradle/Maven也须为arm64原生。

确认系统架构再下载JDK,别直接用Intel版
Mac M1是ARM64架构,java -version报错或显示i386/x86_64就说明装错了。Apple Silicon必须用ARM64原生JDK,否则要么启动失败,要么性能打五折。
- 终端运行
uname -m,输出arm64才对 - 别从Oracle官网下“macOS x64”那个包——它只适配Intel芯片
- 推荐渠道:Adoptium(Eclipse Temurin)的
ARM64版本,或Azul Zulu、Amazon Corretto 的aarch64构建 - 下载后检查文件类型:
file /Library/Java/JavaVirtualMachines/jdk-XX.jdk/Contents/Home/bin/java应含arm64
安装后JAVA_HOME不生效?Zsh配置要改对位置
M1 Mac默认用zsh,但很多人把JAVA_HOME写在~/.bash_profile里,根本不会被读取。
- 编辑
~/.zshrc(不是.bash_profile),加一行:export JAVA_HOME=$(/usr/libexec/java_home -v17) -
/usr/libexec/java_home -V能列出所有已装JDK,注意版本号格式(如17.0.2和17都可能匹配,优先用短格式) - 改完必须执行
source ~/.zshrc,否则新开终端才生效 - 验证:
echo $JAVA_HOME输出路径应含arm64或aarch64字样
IntelliJ / VS Code 仍用错JDK?IDE自己缓存了旧路径
即使终端java -version正确,IDE可能还在用之前装的x86 JDK,尤其重装过系统或多次切换版本后。
- IntelliJ:File → Project Structure → Project → Project SDK → 点“+”→ “Add JDK…” → 手动选
/Library/Java/JavaVirtualMachines/jdk-XX.jdk(路径里带arm64) - VS Code:打开命令面板(Cmd+Shift+P)→ “Java: Configure Java Runtime” → 在“Java Configuration Runtimes”里删掉旧条目,点“+”添加新JDK路径
- 关键点:不要依赖IDE自动检测——它常抓到残留的x86路径;务必手动指定完整路径
- 重启IDE,再看右下角Java版本提示,或打开Java文件看是否还有
Unsupported class file major version错误
Gradle/Maven编译报错“Bad CPU type”?检查构建工具自身架构
就算JDK装对了,如果gradle或mvn命令本身是x86编译的,调用JDK时也会崩。
立即学习“Java免费学习笔记(深入)”;
- 运行
file $(which gradle)或file $(which mvn),输出必须含arm64;若显示x86_64,说明是通过Rosetta跑的 - Homebrew安装的Gradle(
brew install gradle)默认是ARM64,安全;但SDKMAN装的旧版本可能不是 - Maven推荐用Homebrew:
brew install maven,避免SDKMAN或手动解压包带来的架构混淆 - Gradle wrapper(
./gradlew)没问题,它只是脚本,实际执行靠JVM,只要JAVA_HOME对就行
最常被忽略的是:JDK路径对了,IDE对了,但终端里which java指向的是/usr/bin/java(系统占位符),它会绕过JAVA_HOME去调用错误JDK。永远以$JAVA_HOME/bin/java为准,必要时在脚本里硬编码路径。










