macOS 查看与安装 Java JDK 全面指南
📋 目录
这是一份完整的 macOS Java JDK 管理指南,涵盖查看、安装、配置、多版本管理等所有内容。
一、查看 Java 版本
1.1 检查是否已安装 Java
# 查看 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 安装路径
# 查看当前 JAVA_HOME 路径echo$JAVA_HOME# 查看系统默认 Java 路径 /usr/libexec/java_home 1.3 查看已安装的所有 Java 版本
# 列出所有已安装的 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 编译器版本
# 查看 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. 安装
# 双击下载的 .dmg 文件# 按照安装向导完成安装5. 验证
java-version方法二:使用 Homebrew 安装(推荐开发者)⭐⭐
前提:已安装 Homebrew
# 检查 Homebrew 是否安装 brew --version# 如未安装,先安装 Homebrew /bin/bash -c"$(curl-fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"安装步骤:
# 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 配置环境变量:
# 根据终端提示,执行以下命令(以 Java 17 为例)sudoln-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:
# 1. 安装 SDKMANcurl-s"https://get.sdkman.io"|bash# 2. 初始化 SDKMANsource"$HOME/.sdkman/bin/sdkman-init.sh"# 3. 验证安装 sdk version 使用 SDKMAN 管理 Java:
# 1. 查看可用版本 sdk list java# 2. 安装 Java 17 sdk installjava17.0.8-tem # 3. 安装 Java 8 sdk installjava8.0.382-tem # 4. 安装 Java 21 sdk installjava21.0.0-tem # 5. 查看已安装版本 sdk current java# 6. 切换版本 sdk use java17.0.8-tem # 7. 设置默认版本 sdk default java17.0.8-tem # 8. 卸载版本 sdk uninstall java8.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 编辑配置文件
# 编辑配置文件nano ~/.zshrc 4.3 添加环境变量
# ========== 单版本配置(Java 17)==========exportJAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home exportPATH=$JAVA_HOME/bin:$PATH# ========== 多版本切换配置 ==========# 使用 /usr/libexec/java_home 动态获取exportJAVA_HOME=$(/usr/libexec/java_home -v17)# 添加别名方便切换aliasjava8='export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)'aliasjava11='export JAVA_HOME=$(/usr/libexec/java_home -v 11)'aliasjava17='export JAVA_HOME=$(/usr/libexec/java_home -v 17)'aliasjava21='export JAVA_HOME=$(/usr/libexec/java_home -v 21)'4.4 使配置生效
# 重新加载配置文件source ~/.zshrc # 验证echo$JAVA_HOMEjava-version五、多版本管理
5.1 使用 /usr/libexec/java_home 切换
# 查看所有已安装版本 /usr/libexec/java_home -V# 临时切换到 Java 8exportJAVA_HOME=$(/usr/libexec/java_home -v1.8)# 临时切换到 Java 17exportJAVA_HOME=$(/usr/libexec/java_home -v17)# 临时切换到 Java 21exportJAVA_HOME=$(/usr/libexec/java_home -v21)5.2 创建切换脚本
在 ~/.zshrc 中添加:
# 创建切换函数jdk(){version=$1exportJAVA_HOME=$(/usr/libexec/java_home -v"$version")java-version}使用方法:
jdk 1.8# 切换到 Java 8 jdk 17# 切换到 Java 17 jdk 21# 切换到 Java 215.3 项目级别配置
对于不同项目需要不同 Java 版本:
# 在项目目录下创建 .env 文件echo'export JAVA_HOME=$(/usr/libexec/java_home -v 11)'> .env # 使用 direnv 自动加载 brew install direnv echo'layout python'>> .envrc direnv allow 六、验证与测试
6.1 基础验证
# 检查 Java 版本java-version# 检查编译器版本 javac -version# 检查 JAVA_HOMEecho$JAVA_HOME# 检查 Java 路径whichjavawhich javac 6.2 创建测试程序
# 创建测试文件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 检查安装完整性
# 检查关键工具是否存在ls$JAVA_HOME/bin |grep-E"java|javac|jar|javadoc"七、常见问题解决
7.1 command not found
问题:java: command not found
解决方案:
# 1. 检查是否安装 /usr/libexec/java_home -V# 2. 检查 PATHecho$PATH# 3. 重新配置 JAVA_HOMEexportJAVA_HOME=$(/usr/libexec/java_home)exportPATH=$JAVA_HOME/bin:$PATH# 4. 永久生效echo'export JAVA_HOME=$(/usr/libexec/java_home)'>> ~/.zshrc source ~/.zshrc 7.2 多版本冲突
问题: 多个 Java 版本导致冲突
解决方案:
# 1. 查看所有版本 /usr/libexec/java_home -V# 2. 卸载不需要的版本# Oracle JDK: 运行卸载程序# Homebrew: brew uninstall openjdk@8# 3. 设置默认版本exportJAVA_HOME=$(/usr/libexec/java_home -v17)7.3 权限问题
问题:Permission denied
解决方案:
# 修复权限sudochown-R$(whoami) /Library/Java/JavaVirtualMachines # 或使用 sudo 执行sudojava-version7.4 M1/M2 芯片兼容问题
问题: ARM 架构兼容性问题
解决方案:
# 1. 下载 ARM64 版本(推荐)# 2. 或使用 Rosetta 2 转译 softwareupdate --install-rosetta # 3. 验证架构java-version# 应显示 "aarch64" 或 "arm64"7.5 卸载 Java
# 1. 删除 Oracle JDKsudorm-rf /Library/Java/JavaVirtualMachines/jdk*.jdk # 2. 删除偏好设置sudorm-rf /Library/PreferencePanes/JavaControlPanel.prefPane # 3. 删除 Java 插件sudorm-rf /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin # 4. Homebrew 安装的使用 brew uninstall openjdk@17 # 5. SDKMAN 安装的使用 sdk uninstall java17.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 的查看、安装和配置。如有其他问题,欢迎继续咨询!