一、下载 Oracle JDK 21
打开 Oracle Java 官方下载页面:点击进入下载页面
找到 Java SE Development Kit 21,进入 macOS 下载选项。Apple Silicon Mac 应选择:macOS Arm 64 Compressed Archive
这是适用于 Apple Silicon Mac 的 ARM64 压缩包。本文采用手动解压和配置的方式安装,不使用 DMG 安装包,也不依赖 Homebrew。注意区分 Arm 64 和 x64,不要下载 Intel Mac 使用的 x64 版本。
二、安装 JDK 21
1. 解压安装包
下载完成后,打开终端,进入下载目录:
cd ~/Downloads查看下载的 JDK 压缩包:
ls jdk-21*.tar.gz执行解压命令:
tar -xzf jdk-21*.tar.gz解压后会得到 JDK 目录,具体名称以实际下载的文件为准。
2. 移动到标准安装目录
macOS 常用的 JDK 安装目录为:
/Library/Java/JavaVirtualMachines/创建目录:
sudo mkdir -p /Library/Java/JavaVirtualMachines然后将解压得到的 JDK 目录移动过去。
例如,假设解压后得到的目录名为 jdk-21.0.x.jdk,应以实际目录名替换下面的示例:
sudo mv jdk-21*.jdk /Library/Java/JavaVirtualMachines/注意: 上面的目录名仅为示例。如果解压后得到的目录名称不同,请先执行 ls 确认,再执行移动命令,不要直接照抄不匹配的目录名。
移动完成后,检查目录:
ls /Library/Java/JavaVirtualMachines/3. 检查系统是否识别 JDK
执行:
/usr/libexec/java_home -V如果输出中能看到 JDK 21 的版本和安装路径,说明 macOS 已识别该 JDK。如果没有识别到,需要检查目录层级是否正确,以及 JDK 是否放在标准目录中。
三、配置 JAVA_HOME
macOS 默认使用 zsh,可以通过 ~/.zshrc 配置 Java 环境变量。
1. 编辑配置文件
执行:
nano ~/.zshrc在文件末尾添加:
# 默认使用 JDK 21
export JAVA_HOME=$(/usr/libexec/java_home -v 21)
export PATH="$JAVA_HOME/bin:$PATH"这里使用 /usr/libexec/java_home -v 21 自动获取 JDK 21 的安装路径,无需手动填写完整目录。
2. 保存并生效
在 nano 编辑器中:
- 按
Control + O保存。 - 按回车确认。
- 按
Control + X退出。
然后执行:
source ~/.zshrc3. 验证配置
执行以下命令:
java -version
javac -version
echo "$JAVA_HOME"
which java检查 Java 和编译器是否显示 21 版本,以及 JAVA_HOME 是否指向正确的安装目录。
四、安装 JDK 25
如果需要使用 JDK 25,可以通过同一个 Oracle 官方下载页面获取。选择 JDK 25 下的 macOS Arm 64 Compressed Archive并安装。
安装完成后,执行:
/usr/libexec/java_home -V确认系统已经识别 JDK 21 和 JDK 25。
五、切换 JDK 21 和 JDK 25
1. 临时切换版本
切换到 JDK 21:
export JAVA_HOME=$(/usr/libexec/java_home -v 21)
export PATH="$JAVA_HOME/bin:$PATH"切换到 JDK 25:
export JAVA_HOME=$(/usr/libexec/java_home -v 25)
export PATH="$JAVA_HOME/bin:$PATH"切换后执行:
java -version
echo "$JAVA_HOME"即可检查当前使用的版本。需要注意,反复执行简单的 PATH 追加命令,可能导致旧的 Java 路径残留。
2. 配置快捷切换命令
如果经常切换版本,可以在 ~/.zshrc 中添加以下函数:
# 切换到 JDK 21
java21() {
local jdk_home
jdk_home=$(/usr/libexec/java_home -v 21) || return
export JAVA_HOME="$jdk_home"
export PATH="$JAVA_HOME/bin:$PATH"
java -version
}
# 切换到 JDK 25
java25() {
local jdk_home
jdk_home=$(/usr/libexec/java_home -v 25) || return
export JAVA_HOME="$jdk_home"
export PATH="$JAVA_HOME/bin:$PATH"
java -version
}这两个函数会先确认目标 JDK 路径能够获取,再修改环境变量,避免目标版本不存在时直接覆盖 JAVA_HOME。
保存文件后执行:
source ~/.zshrc以后在终端输入:
java21即可切换到 JDK 21;输入:
java25即可切换到 JDK 25。
以上切换只对当前终端会话生效。新开终端时,会重新加载 ~/.zshrc,默认使用其中配置的 JDK 21。
六、验证 JDK 架构
为了确认安装的是适用于 Apple Silicon 的 JDK,可以执行:
file "$JAVA_HOME/bin/java"如果输出包含 arm64,说明该可执行文件支持 ARM64 架构。
如果同时包含 arm64 和 x86_64,说明它是通用二进制文件,同样支持原生 ARM64 运行。
如果只有 x86_64,则需要检查是否下载了 Intel 版本。
注意,file 检查的是可执行文件支持的架构,并不能单独证明当前 Java 进程实际使用的运行架构。
七、常见问题
| 问题 | 解决方法 |
|---|---|
| 找不到 JDK 21 | 执行 /usr/libexec/java_home -V 检查系统识别到的版本 |
java -version 显示的版本不正确 | 检查 JAVA_HOME 和 PATH 配置 |
| 切换 JDK 后版本没有变化 | 检查 which java 和 echo "$JAVA_HOME" |
| 系统无法识别解压后的 JDK | 检查安装目录及目录层级是否正确 |
| 架构显示为 x86_64 | 确认下载的是 macOS Arm 64 版本 |
通过这种方式,可以在同一台 Mac 上安装多个 JDK 版本,并根据项目需求灵活切换。
未经允许不得转载:编源视界 » Apple Silicon MacOS安装Oracle JDK 21并配置JDK 25版本切换

编源视界