Mac 安装 Java JDK 完整教程:一篇文章讲透安装、配置、多版本管理
大家好,我是小悟。
一、Java JDK 详解
1.1 什么是 JDK?
JDK(Java Development Kit,Java 开发工具包)是 Oracle 公司提供的用于 Java 程序开发的完整软件包。它是 Java 开发者不可或缺的核心工具,包含了编写、编译、调试和运行 Java 程序所需的一切组件。
1.2 JDK 的核心组成
JDK 主要由以下几个关键部分组成:
1. JRE(Java Runtime Environment,Java 运行时环境)
- JRE 是 JDK 的子集,提供 Java 程序运行所需的环境
- 包含 JVM(Java Virtual Machine,Java 虚拟机)和核心类库
- 如果只需要运行 Java 程序而不进行开发,仅安装 JRE 即可
2. 开发工具 JDK 提供了丰富的命令行工具,其中最常用的包括:
| 工具命令 | 功能说明 |
|---|---|
javac | Java 编译器,将 .java 源文件编译为 .class 字节码文件 |
java | Java 解释器,启动 JVM 运行编译后的字节码文件 |
jar | Java 归档工具,用于打包和管理 JAR 文件 |
javadoc | API 文档生成器,从源代码注释中生成 HTML 格式的文档 |
jdb | Java 调试器,用于调试 Java 程序 |
javap | 反编译工具,查看类文件的反汇编信息 |
jps | 查看当前运行的 Java 进程信息 |
jstat | 监控 JVM 的统计信息,如垃圾回收、类加载等 |
3. 核心类库(Java API) JDK 内置了庞大的类库集合,为开发者提供了丰富的现成功能:
java.lang:Java 语言的核心类,如String、Math、System等java.util:集合框架、日期时间、随机数等工具类java.io:文件输入输出操作java.net:网络编程支持java.sql:数据库访问接口javax.swing:图形用户界面组件
1.3 JDK 版本说明
Java 的版本演进经历了几个重要阶段:
- Java 8 (LTS):目前应用最广泛的长期支持版本,稳定可靠
- Java 11 (LTS):继 Java 8 之后的长期支持版本,引入了模块化系统
- Java 17 (LTS):最新的长期支持版本,性能和安全均有显著提升
- Java 21 (LTS):最新 LTS,引入了虚拟线程等重大特性
LTS(Long-Term Support) 指长期支持版本,Oracle 会提供至少 8 年的维护和更新,适合生产环境使用。
1.4 JDK 与 JRE 的关系图
┌─────────────────────────────────────────────────────────┐
│ JDK │
│ ┌───────────────────────────────────────────────────┐ │
│ │ JRE │ │
│ │ ┌─────────────────────────────────────────────┐ │ │
│ │ │ JVM │ │ │
│ │ └─────────────────────────────────────────────┘ │ │
│ │ 核心类库 (rt.jar) │ │
│ └───────────────────────────────────────────────────┘ │
│ 开发工具 (javac, jar, javadoc...) │
└─────────────────────────────────────────────────────────┘
二、Mac 安装 Java JDK 详细步骤
2.1 方法一:通过 Homebrew 安装(推荐)
Homebrew 是 Mac 上最流行的包管理器,可以简化安装流程。
步骤 1:检查 Homebrew 是否已安装
brew --version
如果未安装,执行以下命令安装 Homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
步骤 2:搜索可用的 Java 版本
# 搜索所有 Java 相关包
brew search jdk
# 或搜索特定版本
brew search openjdk
步骤 3:安装指定版本的 JDK
# 安装最新版本的 OpenJDK
brew install openjdk
# 安装 Java 17 (LTS)
brew install openjdk@17
# 安装 Java 11 (LTS)
brew install openjdk@11
# 安装 Java 8
brew install openjdk@8
步骤 4:创建符号链接(如需要)
Homebrew 安装的 OpenJDK 通常会自动链接,但某些版本可能需要手动处理:
# 对于 OpenJDK 17
sudo ln -sfn $(brew --prefix)/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk
# 对于 OpenJDK 11
sudo ln -sfn $(brew --prefix)/opt/openjdk@11/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-11.jdk
# 对于 OpenJDK 8
sudo ln -sfn $(brew --prefix)/opt/openjdk@8/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-8.jdk
2.2 方法二:从 Oracle 官网下载安装
步骤 1:访问 Oracle 官网
访问Oracle JDK 下载页面
步骤 2:选择适合的版本
- 选择 macOS 平台
- 选择
.dmg安装包格式 - 下载 ARM64(Apple Silicon)或 x64(Intel)版本
步骤 3:安装 JDK
- 双击下载的
.dmg文件 - 双击安装包图标
- 按照安装向导完成安装
- 安装完成后,JDK 默认安装在
/Library/Java/JavaVirtualMachines/目录下
2.3 验证安装
无论使用哪种安装方式,安装完成后都需要验证:
# 查看 Java 版本
java -version
# 查看 javac 编译器版本
javac -version
# 查看 JDK 安装路径
/usr/libexec/java_home -V
正常输出示例:
openjdk version "17.0.9" 2023-10-17 LTS
OpenJDK Runtime Environment (build 17.0.9+8-LTS)
OpenJDK 64-Bit Server VM (build 17.0.9+8-LTS, mixed mode, sharing)
三、环境变量配置
3.1 确定 Shell 类型
Mac 默认使用 zsh(自 macOS Catalina 起),首先确认当前使用的 Shell:
echo $SHELL
- 输出
/bin/zsh→ 使用 zsh,配置文件为~/.zshrc - 输出
/bin/bash→ 使用 bash,配置文件为~/.bash_profile
3.2 配置 JAVA_HOME
步骤 1:找到 JDK 安装路径
# 获取 JDK 安装路径
/usr/libexec/java_home
# 如果需要指定版本
/usr/libexec/java_home -v 17
步骤 2:编辑 Shell 配置文件
# 如果是 zsh
vim ~/.zshrc
# 如果是 bash
vim ~/.bash_profile
步骤 3:添加环境变量配置
在文件末尾添加以下内容:
# JAVA_HOME 配置
export JAVA_HOME=$(/usr/libexec/java_home)
# 如果安装了多个版本,可以指定特定版本
# export JAVA_HOME=$(/usr/libexec/java_home -v 17)
# 将 JAVA_HOME 添加到 PATH
export PATH=$JAVA_HOME/bin:$PATH
步骤 4:使配置生效
# 根据实际 Shell 选择
source ~/.zshrc # 或 source ~/.bash_profile
步骤 5:验证环境变量
# 验证 JAVA_HOME 是否设置成功
echo $JAVA_HOME
# 验证 PATH 是否包含 Java
echo $PATH | grep java
# 再次验证 Java 命令
java -version
javac -version
3.3 多版本 Java 管理
如果需要同时使用多个 Java 版本,可以配置版本切换功能:
方法一:使用 alias 快速切换
在 ~/.zshrc 中添加:
# Java 版本切换函数
function setjava() {
export JAVA_HOME=$(/usr/libexec/java_home -v $1)
export PATH=$JAVA_HOME/bin:$PATH
echo "Switched to Java $1"
java -version
}
# 设置快捷别名
alias java8='setjava 1.8'
alias java11='setjava 11'
alias java17='setjava 17'
使用方法:
# 切换到 Java 8
java8
# 切换到 Java 11
java11
# 切换到 Java 17
java17
方法二:使用 jEnv 管理
# 安装 jEnv
brew install jenv
# 配置 jEnv
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(jenv init -)"' >> ~/.zshrc
source ~/.zshrc
# 添加已安装的 Java 版本
jenv add /Library/Java/JavaVirtualMachines/openjdk-17.jdk/Contents/Home
jenv add /Library/Java/JavaVirtualMachines/openjdk-11.jdk/Contents/Home
# 设置全局版本
jenv global 17
# 设置当前目录版本
jenv local 11
四、验证与测试
4.1 编写第一个 Java 程序
创建 HelloWorld.java 文件:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, Java JDK on Mac!");
System.out.println("Java Version: " + System.getProperty("java.version"));
System.out.println("Java Home: " + System.getProperty("java.home"));
System.out.println("OS Name: " + System.getProperty("os.name"));
}
}
4.2 编译与运行
# 编译 Java 源文件
javac HelloWorld.java
# 运行编译后的字节码文件
java HelloWorld
预期输出:
Hello, Java JDK on Mac!
Java Version: 17.0.9
Java Home: /Library/Java/JavaVirtualMachines/openjdk-17.jdk/Contents/Home
OS Name: Mac OS X
4.3 查看编译后的文件
# 查看目录内容
ls -la
# 使用 javap 查看字节码信息
javap -c HelloWorld
五、常见问题与解决方案
5.1 "command not found: java"
原因:环境变量未正确配置
解决方案:
# 检查 JDK 是否已安装
ls /Library/Java/JavaVirtualMachines/
# 重新配置环境变量
export JAVA_HOME=$(/usr/libexec/java_home)
export PATH=$JAVA_HOME/bin:$PATH
5.2 "Unable to locate a Java Runtime"
原因:系统未找到 Java 运行时
解决方案:
# 安装 JDK
brew install openjdk@17
# 或创建符号链接
sudo ln -sfn $(brew --prefix)/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk
5.3 版本冲突问题
原因:系统存在多个 Java 版本
解决方案:
# 查看所有已安装版本
/usr/libexec/java_home -V
# 明确指定使用的版本
export JAVA_HOME=$(/usr/libexec/java_home -v 17)
六、详细总结
6.1 安装方式对比
| 安装方式 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| Homebrew | 命令行操作,版本管理便捷,更新简单 | 默认安装 OpenJDK(非 Oracle 官方) | 开发环境,习惯包管理的用户 |
| Oracle 官网 | 官方原版,包含商业功能 | 需要手动下载,更新不便 | 企业环境,需要官方支持 |
| SDKMAN | 多版本管理强大,切换灵活 | 需要额外安装 | 需要频繁切换版本的开发者 |
6.2 关键要点回顾
- JDK 的核心价值:JDK 不仅是运行 Java 程序的环境(JRE),更包含了完整的开发工具链(javac、jar、javadoc 等),是 Java 开发的基石。
- 环境配置的重要性:正确配置 JAVA_HOME 和 PATH 是保证 Java 开发工具正常运行的前提,这些变量告诉操作系统去哪里寻找 Java 命令和库文件。
- 版本选择建议:
- 个人学习:推荐 Java 17 或 Java 21(最新 LTS)
- 企业开发:Java 8 或 Java 11(生态成熟,兼容性好)
- 尝鲜体验:Java 21+(新特性探索)
- 多版本管理:对于需要维护多个项目的开发者,掌握多版本管理能力至关重要,可以通过 jEnv 或自定义函数实现快速切换。
6.3 后续学习建议
完成 JDK 安装与环境配置后,可以继续学习:
- 构建工具:Maven 或 Gradle,用于项目依赖管理和构建
- IDE 集成:IntelliJ IDEA、Eclipse 或 VS Code 中配置 JDK
- 版本控制:Git 与 GitHub 的协作开发
- 框架学习:Spring Boot 等主流框架的开发实践
通过本教程,成功在 Mac 上完成了 Java JDK 的安装和环境配置。这是 Java 开发之路的第一步,也是至关重要的一步。配置完成后,就可以开始编写、编译和运行 Java 程序,开启 Java 开发之旅了。
谢谢你看我的文章,既然看到这里了,如果觉得不错,随手点个赞、转发、在看三连吧,感谢感谢。那我们,下次再见。
您的一键三连,是我更新的最大动力,谢谢
山水有相逢,来日皆可期,谢谢阅读,我们再会
我手中的金箍棒,上能通天,下能探海