最省事且不易出错的方式是用Homebrew安装Temurin(如brew install --cask temurin17),无需手动配置JAVA_HOME或PATH,系统通过/usr/libexec/java_home自动管理,IDE和工具可自动识别;硬编码路径易失效,应动态获取:export JAVA_HOME=$(/usr/libexec/java_home -v17)。

直接装 temurin,别碰 Oracle JDK 安装包,也别手动改 /etc/profile —— 这是最省事、最不容易出错的起点。
用 Homebrew + Temurin 一键安装 JDK
Homebrew 是 macOS 上最稳定的包管理器,temurin(原 AdoptOpenJDK)是目前对 Apple Silicon 支持最完善、更新最及时的 OpenJDK 发行版。它自带 ARM64 原生构建,不依赖 Rosetta 2,启动快、运行稳。
- 先装 Homebrew(如果还没装):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" - 再装 JDK(例如 JDK 17):
brew install --cask temurin17 - 验证:
java -version应输出类似openjdk version "17.0.2"的信息 - 不用手动配置
JAVA_HOME:Temurin 安装后会自动注册到/usr/libexec/java_home,后续工具(如 Maven、IDEA)能自动识别
JAVA_HOME 不要硬写死路径
很多教程让你复制 /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home 这种路径,但这是危险操作。一旦你 later 安装另一个 JDK 版本(比如 temurin21),这个路径就失效了,且 javac 可能用错版本。
- 正确做法是让系统动态解析:
export JAVA_HOME=$(/usr/libexec/java_home -v17) - 把它加进
~/.zshrc(macOS Sonoma 及之后默认 shell 是 zsh) - 如果想随时切换版本,别改
JAVA_HOME,改用/usr/libexec/java_home -v17或-v21查路径,再source ~/.zshrc - 注意:
java -version和javac -version必须一致;若不一致,说明PATH里混进了别的 JDK bin 目录
零基础别碰 Maven 手动下载和配置
Maven 不是必须一开始就装的。写个 HelloWorld.java 只需要 javac 和 java。等你真要建多模块项目、拉依赖时,再装也不迟 —— 而且推荐用 Homebrew 装,不是官网下载 tar.gz。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
立即学习“Java免费学习笔记(深入)”;
- 装 Maven:
brew install maven(自动适配当前 JDK,无需额外配MAVEN_HOME) - 验证:
mvn -v应显示 Java 版本和 Maven 版本,并确认 Java home 路径与java -version一致 - 国内用户务必配阿里云镜像:编辑
~/.m2/settings.xml(若不存在则新建),在<mirrors>内加一段<mirror>,否则mvn compile会卡在下载依赖上 - 不要把 Maven bin 加进
PATH时硬写路径;Homebrew 安装后已自动处理
VS Code 运行 Java 别只装插件就完事
装了 Extension Pack for Java 后,常遇到 “Cannot resolve class” 或 “No Java runtime found”,根本原因不是插件问题,而是 VS Code 没读到你终端里的 JAVA_HOME。
- 确保 VS Code 是从终端启动:
code .,而不是双击图标 —— 否则它不继承 shell 环境变量 - 检查 VS Code 设置里
java.home是否为空;如果为空,让它自动探测,或手动设为$(/usr/libexec/java_home -v17)的结果 - 新建
HelloWorld.java后,右键“Run Java”前,先执行一次javac HelloWorld.java看是否报错;如果编译失败,VS Code 的运行必然失败 - 文件名必须和
public class名完全一致(大小写敏感),否则javac直接拒绝编译
最容易被忽略的点是:Apple Silicon Mac 上,所有命令行工具(包括 javac、mvn、VS Code 终端)都默认走 ARM64 架构。如果你误装了 x86_64 版 JDK(比如从旧 Intel Mac 拷贝过来),java -version 可能显示正常,但运行 Spring Boot 或 JNI 类库时会突然崩溃,错误信息里常带 illegal instruction —— 这时候再换回 Temurin ARM64 版就晚了,得先彻底卸载旧版。

















