Mac 安装 Java JDK 完整教程:一篇文章讲透安装、配置、多版本管理

0 阅读6分钟

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 提供了丰富的命令行工具,其中最常用的包括:

工具命令功能说明
javacJava 编译器,将 .java 源文件编译为 .class 字节码文件
javaJava 解释器,启动 JVM 运行编译后的字节码文件
jarJava 归档工具,用于打包和管理 JAR 文件
javadocAPI 文档生成器,从源代码注释中生成 HTML 格式的文档
jdbJava 调试器,用于调试 Java 程序
javap反编译工具,查看类文件的反汇编信息
jps查看当前运行的 Java 进程信息
jstat监控 JVM 的统计信息,如垃圾回收、类加载等

3. 核心类库(Java API) JDK 内置了庞大的类库集合,为开发者提供了丰富的现成功能:

  • java.lang:Java 语言的核心类,如 StringMathSystem
  • 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

  1. 双击下载的 .dmg 文件
  2. 双击安装包图标
  3. 按照安装向导完成安装
  4. 安装完成后,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 关键要点回顾

  1. JDK 的核心价值:JDK 不仅是运行 Java 程序的环境(JRE),更包含了完整的开发工具链(javac、jar、javadoc 等),是 Java 开发的基石。
  2. 环境配置的重要性:正确配置 JAVA_HOME 和 PATH 是保证 Java 开发工具正常运行的前提,这些变量告诉操作系统去哪里寻找 Java 命令和库文件。
  3. 版本选择建议
    • 个人学习:推荐 Java 17 或 Java 21(最新 LTS)
    • 企业开发:Java 8 或 Java 11(生态成熟,兼容性好)
    • 尝鲜体验:Java 21+(新特性探索)
  4. 多版本管理:对于需要维护多个项目的开发者,掌握多版本管理能力至关重要,可以通过 jEnv 或自定义函数实现快速切换。

6.3 后续学习建议

完成 JDK 安装与环境配置后,可以继续学习:

  1. 构建工具:Maven 或 Gradle,用于项目依赖管理和构建
  2. IDE 集成:IntelliJ IDEA、Eclipse 或 VS Code 中配置 JDK
  3. 版本控制:Git 与 GitHub 的协作开发
  4. 框架学习:Spring Boot 等主流框架的开发实践

通过本教程,成功在 Mac 上完成了 Java JDK 的安装和环境配置。这是 Java 开发之路的第一步,也是至关重要的一步。配置完成后,就可以开始编写、编译和运行 Java 程序,开启 Java 开发之旅了。

Mac 安装 Java JDK 完整教程:一篇文章讲透安装、配置、多版本管理.png

谢谢你看我的文章,既然看到这里了,如果觉得不错,随手点个赞、转发、在看三连吧,感谢感谢。那我们,下次再见。

您的一键三连,是我更新的最大动力,谢谢

山水有相逢,来日皆可期,谢谢阅读,我们再会

我手中的金箍棒,上能通天,下能探海