本文面向刚拿到新 Mac(Apple Silicon 芯片)的开发者,从零开始搭建一套完整的 Java 开发环境。每一步都会解释为什么要装、装了能做什么、不装会怎样。
写在前面:工具链全景
在开始之前,先理解整个工具链的关系:
Xcode CLT → 编译器基础设施,几乎所有工具的底层依赖 ↓ Homebrew → Mac 上的包管理器,用它来安装其他工具 ↓ Oh My Zsh → 让终端更好用(可选,但强烈推荐) ↓ Git + SSH Key → 代码版本管理 + 与远程仓库通信 ↓ JDK 11 → Java 运行和编译环境 ↓ Maven → Java 项目构建和依赖管理 ↓ IntelliJ IDEA → 集成开发环境,写代码的地方| 类型 | 工具 |
|---|---|
| 缺一不可 | Xcode CLT、Git、JDK、Maven |
| 强烈推荐 | Homebrew、Oh My Zsh |
| 可替换 | IntelliJ IDEA(也可用其他 IDE) |
一、Xcode Command Line Tools
是什么 & 为什么装
Xcode CLT 是苹果提供的一套命令行编译工具,包含clang(C/C++ 编译器)、make、git等基础开发工具。
不装会怎样:后续几乎所有工具(Homebrew、Git、Maven)都无法正常运行,是整个开发环境的地基。
安装
xcode-select --install执行后会弹出图形安装窗口,点击"安装"等待完成即可。
如果已经安装完整版 Xcode(从 App Store 下载),需要额外执行:
# 把 Xcode 移到 Applications(放在 Downloads 不算安装) sudo mv ~/Downloads/Xcode.app /Applications/ # 绑定工具链路径 sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer # 接受许可协议(不做这步 Homebrew 会报错) sudo xcodebuild -license accept验证
xcode-select -p # 输出:/Library/Developer/CommandLineTools # 或:/Applications/Xcode.app/Contents/Developer clang --version # 输出:Apple clang version 17.x.x ... git --version # 输出:git version 2.x.x⚠️ 常见问题
问题1:命令卡住或报错"无法连接服务器"
企业网络环境下,苹果软件更新服务器可能被代理拦截,表现为安装进度条卡死或直接报错。
解决:断开公司 Wi-Fi,连手机热点后重新执行命令。
问题2:macOS beta 版本找不到 CLT 包
beta 系统对应的 CLT 包可能尚未发布:
# 验证:输出为空说明包还没上线 softwareupdate -l | grep "Command Line Tools"解决:安装完整版 Xcode 并执行上方绑定命令,效果完全等同 CLT。
二、Homebrew(包管理器)
是什么 & 为什么装
Homebrew 是 macOS 上最主流的包管理器,相当于 Linux 上的apt或yum。有了它,安装任何开发工具只需一行命令,不需要去各个官网手动下载安装包。
不装会怎样:可以手动安装各个工具,但管理和更新会非常繁琐。强烈建议安装。
安装
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"Apple Silicon 必做:添加 PATH
这是 Apple Silicon 特有步骤,Intel Mac 不需要。
原因:Apple Silicon 上 Homebrew 安装在/opt/homebrew,不在系统默认 PATH 里,装完直接用会提示command not found: brew。
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc source ~/.zshrc验证
brew --version # 输出:Homebrew 5.x.x常用命令备忘
brew install <软件名> # 安装 brew uninstall <软件名> # 卸载 brew upgrade # 更新所有软件 brew list # 查看已安装列表 brew search <关键词> # 搜索软件三、Oh My Zsh(终端增强)
是什么 & 为什么装
macOS 默认使用zsh作为 Shell,Oh My Zsh 是 zsh 的配置框架,提供:
- 丰富的主题(好看的命令提示符)
- 插件生态(git 状态显示、命令补全等)
- 进入 git 仓库时自动显示当前分支名
不装会怎样:终端功能完整,只是用起来没那么顺手。非必须,但装了明显提升效率。
安装
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"安装时提示是否覆盖.zshrc,选Y。原文件自动备份为.zshrc.pre-oh-my-zsh,不会丢失之前的配置。
四、Git + SSH Key 配置
是什么 & 为什么装
Git是目前最主流的版本控制系统,用于追踪代码变更、多人协作开发。
SSH Key是非对称加密的身份认证方式。配置后,本机和代码托管平台之间免密通信,无需每次 push/pull 输入密码。
不配 SSH Key 会怎样:每次与远程仓库交互都需要输入用户名密码,且部分平台已不支持密码认证。
步骤一:配置 Git 用户信息
git config --global user.name "Your Name" git config --global user.email "your_email@example.com" # 验证 git config --global --list这些信息会出现在每一次 commit 记录里,建议用真实姓名和常用邮箱。
步骤二:检查并修复 .ssh 目录权限
ls -la ~ | grep .ssh正常输出:
drwx------ 3 yourusername staff 96 ...如果所有者是root(新 Mac 偶尔出现):
sudo chown -R $(whoami) ~/.ssh chmod 700 ~/.ssh权限不对会导致
ssh-keygen报Permission denied,必须先修复再继续。
步骤三:生成 SSH 密钥对
ssh-keygen -t ed25519 -C "your_email@example.com"三次交互全部回车,使用默认值:
Enter file in which to save the key: # 回车 Enter passphrase: # 回车(不设密码) Enter same passphrase again: # 回车生成两个文件:
~/.ssh/id_ed25519—私钥,绝对不能泄露,留在本机~/.ssh/id_ed25519.pub—公钥,上传到 GitLab/GitHub
步骤四:将公钥添加到代码托管平台
# 查看公钥,复制完整的这一行 cat ~/.ssh/id_ed25519.pub # 输出示例:ssh-ed25519 AAAA...(很长)... your_email@example.com将完整内容粘贴到 GitLab/GitHub 的 SSH Keys 设置页面。
步骤五:验证 SSH 连通性
ssh -T git@github.com # 成功输出:Hi username! You've successfully authenticated... # 如果是公司 GitLab ssh -T git@gitlab.example.com # 成功输出:Welcome to GitLab, @username!⚠️ 常见问题
问题:平台报"密钥类型被禁止"或"密钥无效"
原因:粘贴时漏掉了开头的ssh-ed25519,只粘贴了中间的 Base64 内容。
必须粘贴完整的一整行,格式为:
ssh-ed25519 AAAA...(Base64内容)... your_email@example.com五、克隆代码仓库
为什么单独说这一步
克隆是把远程仓库的代码下载到本地的操作,是日常开发的起点。有几个细节值得注意。
创建代码目录
Mac 不自带代码目录,建议统一放在一个地方便于管理:
mkdir -p ~/Develop cd ~/DevelopSSH 协议 vs HTTPS 协议
克隆仓库有两种地址格式:
| 协议 | 格式 | 特点 |
|---|---|---|
| SSH(推荐) | git@github.com:user/repo.git | 用密钥认证,免密,更安全 |
| HTTPS | https://github.com/user/repo.git | 每次需要输入账号密码或 Token |
始终优先使用 SSH 协议。
克隆命令
# 标准克隆(完整历史记录) git clone git@github.com:your-org/your-repo.git # 浅克隆(只拉最新一个版本,适合大仓库,速度更快) git clone --depth=1 git@github.com:your-org/your-repo.git什么时候用--depth=1:大型项目历史记录可能有几个 GB,浅克隆只拉最新代码,速度快很多。如果只是运行项目而不需要查看历史,用浅克隆即可。
六、JDK 11
是什么 & 为什么装
JDK(Java Development Kit)是 Java 开发工具包,包含运行环境、编译器、调试工具等。
为什么是 JDK 11:LTS(长期支持)版本,业界主流项目大多在 JDK 8/11/17 上运行,11 是兼容性和现代特性的最佳平衡点。
不装会怎样:无法编译和运行任何 Java 代码,Maven 也无法工作。
下载安装
推荐Microsoft Build of OpenJDK(免费、稳定):
👉 https://www.microsoft.com/openjdk
- Apple Silicon→ 选
macOS aarch64 .pkg - Intel 芯片→ 选
macOS x64 .pkg
下载.pkg文件双击安装,按向导完成。
配置 JAVA_HOME
# 验证 JDK 路径 export JAVA_HOME=$(/usr/libexec/java_home) echo $JAVA_HOME # 示例:/Library/Java/JavaVirtualMachines/microsoft-11.jdk/Contents/Home # 写入 .zshrc,永久生效 echo "export JAVA_HOME=$(/usr/libexec/java_home -v 11)" >> ~/.zshrc source ~/.zshrc为什么要设置 JAVA_HOME:Maven、Gradle 等工具启动时读取这个变量来定位 Java。不设置可能找不到 Java,或用了错误版本。
验证
java -version # 输出:openjdk version "11.0.25" ... echo $JAVA_HOME # 输出:JDK 11 路径⚠️ 常见问题
Homebrew 安装 Maven 时顺带安装了新版 openjdk,导致版本混乱
# 检查当前版本 java -version # 如果不是 11,手动指定 echo "export JAVA_HOME=$(/usr/libexec/java_home -v 11)" >> ~/.zshrc source ~/.zshrc七、Maven
是什么 & 为什么装
Maven 是 Java 生态最主流的项目构建和依赖管理工具,做三件事:
- 依赖管理— 自动下载项目所需第三方库,不需要手动管理 jar 包
- 项目构建— 编译、测试、打包一条命令搞定
- 标准化— 统一项目结构,让团队在同一套规范下工作
不装会怎样:无法构建绝大多数 Java 项目。
安装
brew install maven # 增加内存配置,防止大项目 OOM(内存溢出) echo 'export MAVEN_OPTS="$MAVEN_OPTS -Xmx4g"' >> ~/.zshrc source ~/.zshrc内存参数参考:8GB 内存 Mac 建议-Xmx2g,16GB 及以上用-Xmx4g。
配置 settings.xml
settings.xml是 Maven 核心配置文件,用于配置私有仓库地址、镜像源、认证信息等。
# 创建 Maven 本地目录 mkdir -p ~/.m2/ # 备份旧配置(如有) test -r ~/.m2/settings.xml && \ cp ~/.m2/settings.xml ~/.m2/settings.xml.$(date '+%Y%m%d').bak # 进入团队配置仓库目录(必须先 cd 进去) cd ~/Develop/your-config-repo git pull --rebase # 建立软链(必须在配置仓库目录内执行!) ln -fsv $(pwd)/path/to/settings.xml ~/.m2/settings.xml # 验证软链 ll ~/.m2/settings.xml # 应显示:settings.xml -> /Users/xxx/Develop/your-config-repo/...为什么用软链:软链让本地配置和仓库保持同步,团队更新配置后git pull就能自动获取,不需要手动覆盖文件。
验证
mvn -version # 期望输出: # Apache Maven 3.9.x # Java version: 11.0.x, vendor: Microsoft # OS name: "mac os x", arch: "aarch64" ← Apple Silicon 原生应显示 aarch64⚠️ 常见问题
软链路径错误(最高频的 Maven 异常根源)
必须进入配置仓库目录后再执行ln命令,$(pwd)会展开为当前路径:
# ✅ 正确:先进目录再执行 cd ~/Develop/your-config-repo ln -fsv $(pwd)/path/to/settings.xml ~/.m2/settings.xml # ❌ 错误:在其他目录执行,$(pwd) 展开为错误路径 # 即使命令不报错,软链也会指向一个不存在的路径八、IntelliJ IDEA
是什么 & 为什么装
IntelliJ IDEA 是目前 Java 开发最主流的 IDE,提供智能代码补全、内置调试器、Git 可视化、Maven 项目管理等功能。
不装会怎样:可以用 VSCode 代替,但 IDEA 对 Java/Kotlin 的支持是业界最好的,大多数 Java 团队的标配。
下载安装
👉 https://www.jetbrains.com/idea/download
Apple Silicon 选 macOS Apple Silicon (.dmg),原生 arm64,性能比通用版好很多。
下载后双击.dmg,将 IDEA 图标拖到 Applications 文件夹完成安装。
配置 Checkstyle
团队项目通常有代码格式规范,安装后务必配置 Checkstyle:
- 打开 IDEA → Preferences → 搜索
Checkstyle - 安装 CheckStyle-IDEA 插件
- 导入团队的 checkstyle 配置文件
不配的后果:每次提交代码都会因格式问题被 CI 拦截,浪费大量时间在格式修复上。
九、最终 .zshrc 配置汇总
完成所有步骤后,~/.zshrc中应包含以下关键配置:
# Homebrew(Apple Silicon 必须) eval "$(/opt/homebrew/bin/brew shellenv)" # Java export JAVA_HOME=$(/usr/libexec/java_home -v 11) # Maven export MAVEN_OPTS="$MAVEN_OPTS -Xmx4g"验证配置加载正常:
source ~/.zshrc echo $JAVA_HOME # 应输出 JDK 11 路径 echo $MAVEN_OPTS # 应输出 -Xmx4g which brew # 应输出 /opt/homebrew/bin/brew十、常用终端操作速查
快捷键
| 快捷键 | 效果 |
|---|---|
Control + U | 清除当前行所有输入 |
Control + C | 中断正在运行的命令 |
Control + A | 跳到行首 |
Control + E | 跳到行尾 |
Control + W | 删除前一个单词 |
Control + D | 退出当前 Shell |
Command + K | 清空终端屏幕 |
Command + T | 新建标签页 |
Command + N | 新建终端窗口 |
常用命令
pwd # 查看当前路径 ls -la # 查看目录内容(含隐藏文件) cd ~/Develop # 进入目录 mkdir -p ~/foo # 创建目录(-p 自动创建父级) cat ~/.zshrc # 查看文件内容 source ~/.zshrc # 重新加载配置文件 which java # 查看命令实际路径 ll ~/.m2/settings.xml # 查看软链指向全流程验证清单
# 基础工具链 xcode-select -p # ✅ 有路径输出 clang --version # ✅ Apple clang 版本号 git --version # ✅ git 2.x.x # 包管理 brew --version # ✅ Homebrew 5.x.x # SSH 连通性 ssh -T git@github.com # ✅ 认证成功提示 # Java 环境 java -version # ✅ openjdk 11.x.x echo $JAVA_HOME # ✅ 指向 JDK 11 mvn -version # ✅ Maven 3.x.x + Java 11 + aarch64 # Maven 配置 ll ~/.m2/settings.xml # ✅ 软链指向正确路径 # 服务治理(视团队要求) lsof -i:6604 # ✅ KESS Agent 监听正常 # 代码协作工具(视团队要求) kdev # ✅ 有帮助信息输出高频坑汇总
| 问题现象 | 根因 | 解决方案 |
|---|---|---|
xcode-select --install卡住失败 | 企业网络代理拦截苹果服务器 | 换手机热点 / 安装完整版 Xcode |
ssh-keygen报 Permission denied | .ssh目录归 root 所有 | sudo chown -R $(whoami) ~/.ssh |
brew: command not found | Apple Silicon PATH 未配置 | 向.zshrc写入 brew shellenv |
| GitLab 报密钥无效 | 公钥粘贴不完整,缺ssh-ed25519前缀 | 重新cat ~/.ssh/id_ed25519.pub完整复制 |
| Maven 构建找不到依赖 | settings.xml软链路径错误 | 进入配置仓库目录,重新执行ln -fsv |
mvn -version显示 Java 版本不对 | 多个 JDK 版本共存,JAVA_HOME 指向错误 | export JAVA_HOME=$(/usr/libexec/java_home -v 11) |
| KESS Agent 安装包被系统拦截 | macOS 安全策略阻止未知开发者 | 系统设置 → 隐私与安全性 → 仍然允许 |
kdev报 Permission denied | 安装时未用 sudo,/usr/local/bin/写入失败 | 重新用sudo curl安装 |
按顺序走,每步验证通过再继续。遇到问题先对照坑汇总排查,90% 的情况不需要额外搜索。