
📋 目录
- [一、查看 Java 版本](#一、查看 Java 版本)
-
- [1.1 检查是否已安装 Java](#1.1 检查是否已安装 Java)
- [1.2 查看 Java 安装路径](#1.2 查看 Java 安装路径)
- [1.3 查看已安装的所有 Java 版本](#1.3 查看已安装的所有 Java 版本)
- [1.4 查看 Java 编译器版本](#1.4 查看 Java 编译器版本)
- [二、理解 Java 版本命名](#二、理解 Java 版本命名)
-
- [2.1 版本命名规则](#2.1 版本命名规则)
- [2.2 LTS 版本说明](#2.2 LTS 版本说明)
- [三、安装 JDK 的四种方法](#三、安装 JDK 的四种方法)
-
- 方法一:官网下载安装(推荐新手)⭐
- [方法二:使用 Homebrew 安装(推荐开发者)⭐⭐](#方法二:使用 Homebrew 安装(推荐开发者)⭐⭐)
- [前提:已安装 Homebrew](#前提:已安装 Homebrew)
- [方法三:使用 SDKMAN 管理多版本(推荐高级用户)⭐⭐⭐](#方法三:使用 SDKMAN 管理多版本(推荐高级用户)⭐⭐⭐)
-
- [安装 SDKMAN:](#安装 SDKMAN:)
- [使用 SDKMAN 管理 Java:](#使用 SDKMAN 管理 Java:)
- [方法四:使用 IntelliJ IDEA 内置 JDK](#方法四:使用 IntelliJ IDEA 内置 JDK)
- 四、配置环境变量
-
- [4.1 找到配置文件](#4.1 找到配置文件)
- [4.2 编辑配置文件](#4.2 编辑配置文件)
- [4.3 添加环境变量](#4.3 添加环境变量)
- [4.4 使配置生效](#4.4 使配置生效)
- 五、多版本管理
-
- [5.1 使用 /usr/libexec/java_home 切换](#5.1 使用 /usr/libexec/java_home 切换)
- [5.2 创建切换脚本](#5.2 创建切换脚本)
- [5.3 项目级别配置](#5.3 项目级别配置)
- 六、验证与测试
-
- [6.1 基础验证](#6.1 基础验证)
- [6.2 创建测试程序](#6.2 创建测试程序)
- [6.3 检查安装完整性](#6.3 检查安装完整性)
- 七、常见问题解决
-
- [7.1 command not found](#7.1 command not found)
- [7.2 多版本冲突](#7.2 多版本冲突)
- [7.3 权限问题](#7.3 权限问题)
- [7.4 M1/M2 芯片兼容问题](#7.4 M1/M2 芯片兼容问题)
- [7.5 卸载 Java](#7.5 卸载 Java)
- [📊 快速参考表](#📊 快速参考表)
- [💡 最佳实践建议](#💡 最佳实践建议)
这是一份完整的 macOS Java JDK 管理指南,涵盖查看、安装、配置、多版本管理等所有内容。
一、查看 Java 版本
1.1 检查是否已安装 Java
bash
# 查看 Java 运行时版本
java -version
可能输出:
java version "17.0.8" 2023-07-18 LTS
Java(TM) SE Runtime Environment (build 17.0.8+9-LTS-211)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.8+9-LTS-211, mixed mode, sharing)
| 输出情况 | 含义 |
|---|---|
| 显示版本号 | 已安装 Java |
command not found |
未安装 Java |
No Java runtime present |
需要安装 |
1.2 查看 Java 安装路径
bash
# 查看当前 JAVA_HOME 路径
echo $JAVA_HOME
# 查看系统默认 Java 路径
/usr/libexec/java_home
1.3 查看已安装的所有 Java 版本
bash
# 列出所有已安装的 JDK
/usr/libexec/java_home -V
输出示例:
Matching Java Virtual Machines (2):
17.0.8 (arm64) "Oracle Corporation" - "Java SE 17.0.8"
/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
1.8.0_381 (arm64) "Oracle Corporation" - "Java SE 8"
/Library/Java/JavaVirtualMachines/jdk1.8.jdk/Contents/Home
1.4 查看 Java 编译器版本
bash
# 查看 javac 版本
javac -version
# 查看 jar 工具版本
jar --version
二、理解 Java 版本命名
2.1 版本命名规则
| 旧命名 | 新命名 | 说明 |
|---|---|---|
| Java 1.4 | Java 4 | 2004年之前 |
| Java 5.0 | Java 5 | 2004年 |
| Java 6 | Java 6 | 2006年 |
| Java 7 | Java 7 | 2011年 |
| Java 1.8 | Java 8 | 2014年(最常用) |
| Java 9 | Java 9 | 2017年 |
| Java 10 | Java 10 | 2018年 |
| Java 11 | Java 11 | 2018年(LTS) |
| Java 17 | Java 17 | 2021年(LTS) |
| Java 21 | Java 21 | 2023年(LTS) |
2.2 LTS 版本说明
LTS(Long Term Support) = 长期支持版本,推荐优先选择:
| LTS 版本 | 支持期限 | 适用场景 |
|---|---|---|
| Java 8 | 已停止公开更新 | 老项目维护 |
| Java 11 | 至2026年 | 企业应用 |
| Java 17 | 至2029年 | 新项目首选 |
| Java 21 | 至2031年 | 最新项目 |
三、安装 JDK 的四种方法
方法一:官网下载安装(推荐新手)⭐
步骤:
1. 访问官网
Oracle 官网:https://www.oracle.com/java/technologies/downloads/
OpenJDK:https://jdk.java.net/
2. 选择版本
- 新项目:Java 17 或 21
- 老项目:Java 8 或 11
3. 下载对应版本
| 芯片类型 | 选择版本 |
|---|---|
| M1/M2/M3 | macOS ARM64 DMG Installer |
| Intel | macOS x64 DMG Installer |
4. 安装
bash
# 双击下载的 .dmg 文件
# 按照安装向导完成安装
5. 验证
bash
java -version
方法二:使用 Homebrew 安装(推荐开发者)⭐⭐
前提:已安装 Homebrew
bash
# 检查 Homebrew 是否安装
brew --version
# 如未安装,先安装 Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
安装步骤:
bash
# 1. 搜索可用版本
brew search openjdk
# 2. 安装 Java 17(推荐)
brew install openjdk@17
# 3. 安装 Java 8
brew install openjdk@8
# 4. 安装 Java 21
brew install openjdk@21
# 5. 查看安装路径
brew info openjdk@17
配置环境变量:
bash
# 根据终端提示,执行以下命令(以 Java 17 为例)
sudo ln -sfn /opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk \
/Library/Java/JavaVirtualMachines/openjdk-17.jdk
# 添加到 shell 配置文件
echo 'export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH"' >> ~/.zshrc
echo 'export JAVA_HOME="/opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk"' >> ~/.zshrc
# 使配置生效
source ~/.zshrc
方法三:使用 SDKMAN 管理多版本(推荐高级用户)⭐⭐⭐
安装 SDKMAN:
bash
# 1. 安装 SDKMAN
curl -s "https://get.sdkman.io" | bash
# 2. 初始化 SDKMAN
source "$HOME/.sdkman/bin/sdkman-init.sh"
# 3. 验证安装
sdk version
使用 SDKMAN 管理 Java:
bash
# 1. 查看可用版本
sdk list java
# 2. 安装 Java 17
sdk install java 17.0.8-tem
# 3. 安装 Java 8
sdk install java 8.0.382-tem
# 4. 安装 Java 21
sdk install java 21.0.0-tem
# 5. 查看已安装版本
sdk current java
# 6. 切换版本
sdk use java 17.0.8-tem
# 7. 设置默认版本
sdk default java 17.0.8-tem
# 8. 卸载版本
sdk uninstall java 8.0.382-tem
优势: 可以轻松在多个 Java 版本之间切换,非常适合需要同时开发多个项目的开发者。
方法四:使用 IntelliJ IDEA 内置 JDK
如果你使用 IntelliJ IDEA 开发:
1. 打开 IDEA → Settings → Build, Execution, Deployment → Build Tools → Maven
2. 在 "JDK for importer" 中选择或下载 JDK
3. IDEA 会自动下载并配置 JetBrains Runtime
四、配置环境变量
4.1 找到配置文件
| Shell 类型 | 配置文件 |
|---|---|
| zsh(macOS 默认) | ~/.zshrc |
| bash | ~/.bash_profile 或 ~/.bashrc |
4.2 编辑配置文件
bash
# 编辑配置文件
nano ~/.zshrc
4.3 添加环境变量
bash
# ========== 单版本配置(Java 17)==========
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
# ========== 多版本切换配置 ==========
# 使用 /usr/libexec/java_home 动态获取
export JAVA_HOME=$(/usr/libexec/java_home -v 17)
# 添加别名方便切换
alias java8='export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)'
alias java11='export JAVA_HOME=$(/usr/libexec/java_home -v 11)'
alias java17='export JAVA_HOME=$(/usr/libexec/java_home -v 17)'
alias java21='export JAVA_HOME=$(/usr/libexec/java_home -v 21)'
4.4 使配置生效
bash
# 重新加载配置文件
source ~/.zshrc
# 验证
echo $JAVA_HOME
java -version
五、多版本管理
5.1 使用 /usr/libexec/java_home 切换
bash
# 查看所有已安装版本
/usr/libexec/java_home -V
# 临时切换到 Java 8
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)
# 临时切换到 Java 17
export JAVA_HOME=$(/usr/libexec/java_home -v 17)
# 临时切换到 Java 21
export JAVA_HOME=$(/usr/libexec/java_home -v 21)
5.2 创建切换脚本
在 ~/.zshrc 中添加:
bash
# 创建切换函数
jdk() {
version=$1
export JAVA_HOME=$(/usr/libexec/java_home -v"$version")
java -version
}
使用方法:
bash
jdk 1.8 # 切换到 Java 8
jdk 17 # 切换到 Java 17
jdk 21 # 切换到 Java 21
5.3 项目级别配置
对于不同项目需要不同 Java 版本:
bash
# 在项目目录下创建 .env 文件
echo 'export JAVA_HOME=$(/usr/libexec/java_home -v 11)' > .env
# 使用 direnv 自动加载
brew install direnv
echo 'layout python' >> .envrc
direnv allow
六、验证与测试
6.1 基础验证
bash
# 检查 Java 版本
java -version
# 检查编译器版本
javac -version
# 检查 JAVA_HOME
echo $JAVA_HOME
# 检查 Java 路径
which java
which javac
6.2 创建测试程序
bash
# 创建测试文件
cat > Test.java << EOF
public class Test {
public static void main(String[] args) {
System.out.println("Java 版本: " + System.getProperty("java.version"));
System.out.println("Java 供应商: " + System.getProperty("java.vendor"));
System.out.println("操作系统: " + System.getProperty("os.name"));
}
}
EOF
# 编译
javac Test.java
# 运行
java Test
预期输出:
Java 版本: 17.0.8
Java 供应商: Oracle Corporation
操作系统: Mac OS X
6.3 检查安装完整性
bash
# 检查关键工具是否存在
ls $JAVA_HOME/bin | grep -E "java|javac|jar|javadoc"
七、常见问题解决
7.1 command not found
问题: java: command not found
解决方案:
bash
# 1. 检查是否安装
/usr/libexec/java_home -V
# 2. 检查 PATH
echo $PATH
# 3. 重新配置 JAVA_HOME
export JAVA_HOME=$(/usr/libexec/java_home)
export PATH=$JAVA_HOME/bin:$PATH
# 4. 永久生效
echo 'export JAVA_HOME=$(/usr/libexec/java_home)' >> ~/.zshrc
source ~/.zshrc
7.2 多版本冲突
问题: 多个 Java 版本导致冲突
解决方案:
bash
# 1. 查看所有版本
/usr/libexec/java_home -V
# 2. 卸载不需要的版本
# Oracle JDK: 运行卸载程序
# Homebrew: brew uninstall openjdk@8
# 3. 设置默认版本
export JAVA_HOME=$(/usr/libexec/java_home -v 17)
7.3 权限问题
问题: Permission denied
解决方案:
bash
# 修复权限
sudo chown -R $(whoami) /Library/Java/JavaVirtualMachines
# 或使用 sudo 执行
sudo java -version
7.4 M1/M2 芯片兼容问题
问题: ARM 架构兼容性问题
解决方案:
bash
# 1. 下载 ARM64 版本(推荐)
# 2. 或使用 Rosetta 2 转译
softwareupdate --install-rosetta
# 3. 验证架构
java -version
# 应显示 "aarch64" 或 "arm64"
7.5 卸载 Java
bash
# 1. 删除 Oracle JDK
sudo rm -rf /Library/Java/JavaVirtualMachines/jdk*.jdk
# 2. 删除偏好设置
sudo rm -rf /Library/PreferencePanes/JavaControlPanel.prefPane
# 3. 删除 Java 插件
sudo rm -rf /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin
# 4. Homebrew 安装的使用
brew uninstall openjdk@17
# 5. SDKMAN 安装的使用
sdk uninstall java 17.0.8-tem
📊 快速参考表
安装命令速查
| 方法 | 安装 Java 17 | 安装 Java 8 |
|---|---|---|
| 官网 | 下载 DMG 安装 | 下载 DMG 安装 |
| Homebrew | brew install openjdk@17 |
brew install openjdk@8 |
| SDKMAN | sdk install java 17.0.8-tem |
sdk install java 8.0.382-tem |
常用命令速查
| 命令 | 用途 |
|---|---|
java -version |
查看 Java 版本 |
javac -version |
查看编译器版本 |
/usr/libexec/java_home -V |
查看所有已安装版本 |
echo $JAVA_HOME |
查看当前 JAVA_HOME |
source ~/.zshrc |
刷新环境变量 |
💡 最佳实践建议
- 新手推荐:使用官网 DMG 安装,简单直接
- 开发者推荐:使用 Homebrew + SDKMAN,方便多版本管理
- 生产环境:使用 LTS 版本(Java 17 或 21)
- 老项目维护:保留 Java 8 环境
- 定期更新:关注安全更新,及时升级小版本
按照以上指南操作,你应该能在 macOS 上顺利完成 Java JDK 的查看、安装和配置。如有其他问题,欢迎继续咨询!