杰瑞科技汇

Java在Mac上如何配置环境变量?

概览:为什么需要配置环境变量?

当你安装 Java 后,操作系统本身并不知道 javajavac (编译器) 等命令在哪里,环境变量就像是给系统设置的“快捷方式”或“寻路地图”,告诉系统在哪些目录下可以找到这些可执行程序。

Java在Mac上如何配置环境变量?-图1
(图片来源网络,侵删)

最关键的环境变量是:

  1. JAVA_HOME: 指向你的 Java 安装根目录的路径,很多基于 Java 的应用(如 Tomcat、Maven、IntelliJ IDEA)都需要这个变量来定位 JDK。
  2. PATH: 系统的可执行文件搜索路径,将 %JAVA_HOME%/bin 添加到 PATH 中,你就可以在终端的任何位置直接输入 java 命令,而无需输入完整路径。

第一步:安装 Java (JDK)

在配置之前,你必须先安装 Java Development Kit (JDK),推荐从官方渠道下载。

使用 Homebrew (推荐)

Homebrew 是 macOS 上最流行的包管理器,安装和管理软件非常方便。

  1. 安装 Homebrew (如果尚未安装): 打开终端 (Terminal),输入以下命令并按回车:

    Java在Mac上如何配置环境变量?-图2
    (图片来源网络,侵删)
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

    根据提示操作即可。

  2. 使用 Homebrew 安装 JDK: Homebrew 提供了多个版本的 JDK,你可以选择安装一个最新的 LTS (长期支持) 版本,OpenJDK 17。

    # 安装 OpenJDK 17 (推荐)
    brew install openjdk@17
    # 如果你需要其他版本,JDK 21
    # brew install openjdk@21

安装完成后,Homebrew 会提示你如何设置环境变量,这正是我们下一步要做的。

手动从 Oracle 官网下载

  1. 访问 Oracle Java SE Development Kit 下载页面OpenJDK 官网
  2. 下载适合你 macOS 架构 (Apple Silicon - arm64 或 Intel - x86_64) 的 .dmg 安装包。
  3. 双击 .dmg 文件,按照提示将 JDK 拖到 Applications 文件夹中。

第二步:配置环境变量

macOS 的环境变量配置文件通常位于你的用户主目录 () 下,我们将使用 zsh,因为它是 macOS Catalina (10.15) 及之后版本的默认 Shell,如果你仍在使用旧版的 bash,请将文件名 .zshrc 替换为 .bash_profile

Java在Mac上如何配置环境变量?-图3
(图片来源网络,侵删)

打开终端

在 "应用程序" -> "实用工具" 中找到 "终端" (Terminal) 并打开它。

找到 Java 安装路径

这一步至关重要,路径必须正确。

如果你使用的是 Homebrew 安装的 JDK:

Homebrew 会将 JDK 安装在 /opt/homebrew/ (Apple Silicon Mac) 或 /usr/local/ (Intel Mac) 目录下,你可以通过以下命令找到 openjdk@17 的实际安装路径:

# 对于 Apple Silicon (M1/M2/M3) Mac
brew --prefix openjdk@17
# 对于 Intel Mac
# brew --prefix openjdk@17

假设输出是 /opt/homebrew/opt/openjdk@17,那么你的 JAVA_HOME 就应该指向这个路径。

如果你手动安装的 JDK:

JDK 通常被安装在 /Library/Java/JavaVirtualMachines/ 目录下,你可以用 ls 命令查看:

ls /Library/Java/JavaVirtualMachines/

你会看到类似 jdk-17.jdk 这样的文件夹。JAVA_HOME /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home

编辑配置文件

我们将使用 nano 这个简单易用的文本编辑器来编辑 .zshrc 文件。

nano ~/.zshrc

如果文件不存在,nano 会自动创建一个。

添加环境变量

在打开的文件中,将以下内容添加到文件末尾。请务必将 /path/to/your/java 替换成你上一步中找到的实际路径。

# Java Environment Configuration
# 如果你使用 Homebrew 安装的,路径通常是下面这样
export JAVA_HOME="/opt/homebrew/opt/openjdk@17" 
# 或者对于 Intel Mac: export JAVA_HOME="/usr/local/opt/openjdk@17"
# 如果你手动安装的,路径通常是下面这样
# export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home"
# 将 Java 的 bin 目录添加到 PATH 中
export PATH="$JAVA_HOME/bin:$PATH"

解释:

  • export: 将变量的值导出,使其在当前 Shell 及其所有子进程中都可用。
  • JAVA_HOME="...": 定义 JAVA_HOME 变量。
  • PATH="$JAVA_HOME/bin:$PATH": 这行非常重要,它将 $JAVA_HOME/bin (即 Java 可执行文件所在的目录) 添加到了 PATH 变量的最前面。$PATH 代表了 PATH 变量原有的值,用冒号 分隔,这样做可以确保系统优先使用你配置的 Java 版本。

保存并退出

nano 编辑器中:

  1. Control + X
  2. 它会询问你是否保存,按 Y (代表 Yes)。
  3. 最后按 Enter 确认文件名。

第三步:让配置生效并验证

让配置立即生效

新打开的终端窗口会自动加载 .zshrc 文件,但当前窗口不会,你需要执行以下命令来重新加载配置文件:

source ~/.zshrc

验证配置

让我们来检查一切是否设置正确。

  1. 检查 JAVA_HOME:

    echo $JAVA_HOME

    如果配置成功,它会输出你设置的 Java 路径,/opt/homebrew/opt/openjdk@17

  2. 检查 PATH:

    echo $PATH

    在输出的字符串中,你应该能看到你设置的 Java 路径/bin 出现在最前面。

  3. 检查 Java 版本:

    java -version
    javac -version

    如果配置成功,这两个命令会分别显示你安装的 Java 版本信息,

    openjdk version "17.0.9" 2025-10-17
    OpenJDK Runtime Environment Temurin-17.0.9+7 (build 17.0.9+7)
    OpenJDK 64-bit Server VM Temurin-17.0.9+7 (build 17.0.9+7, mixed mode, sharing)

    这表示你已经成功在终端中使用 Java 了!


高级主题:管理多个 Java 版本

在实际开发中,你可能需要在不同项目间切换 Java 版本 (一个项目用 JDK 8,另一个用 JDK 17),手动修改 .zshrc 文件非常低效。

这里推荐一个神器:SDKMAN!

使用 SDKMAN! 管理 Java

  1. 安装 SDKMAN!

    curl -s "https://get.sdkman.io" | bash

    安装完成后,根据提示打开一个新的终端窗口或执行 source "$HOME/.sdkman/bin/sdkman-init.sh"

  2. 安装多个 Java 版本

    # 安装 JDK 17
    sdk install java 17.0.9-tem
    # 安装 JDK 8
    sdk install java 8.0.382-zulu
  3. 切换 Java 版本

    # 查看所有已安装的 Java 版本
    sdk list java
    # 切换到 JDK 17
    sdk use java 17.0.9-tem
    # 切换到 JDK 8
    sdk use java 8.0.382-zulu

    使用 SDKMAN!,你无需手动配置 JAVA_HOMEPATH,它会自动为你处理好一切,这是专业 Java 开发者的首选方式。


常见问题排查 (FAQ)

Q: 我设置了 JAVA_HOME,但 java -version 仍然报错或显示的是旧版本。 A: 这通常是因为 PATH 中有其他路径优先级更高,检查 echo $PATH 的输出,看是否有其他 JDK 的 bin 目录在它前面,或者,你之前的终端窗口没有执行 source ~/.zshrc

Q: 我应该用 .zshrc 还是 .bash_profile A: 对于 macOS Catalina (10.15) 及之后版本,默认 Shell 是 zsh,所以应该用 .zshrc,对于旧版本或你明确在使用 bash Shell 的情况,使用 .bash_profile,绝大多数情况下,.zshrc 是正确的选择。

Q: JAVA_HOME 的末尾需要斜杠 吗? A: 不需要。JAVA_HOME 应该指向 JDK 的根目录,/opt/homebrew/opt/openjdk@17,而不是 /opt/homebrew/opt/openjdk@17/

Q: 我用 IDE (如 IntelliJ IDEA) 开发,需要配置吗? A: 是的,仍然需要,虽然 IDE 通常有自己的内部 JDK,但在运行、调试或使用 Maven/Gradle 构建项目时,它们会使用系统环境变量中的 JAVA_HOME 来查找编译器和运行时环境,配置好系统环境变量可以确保所有工具的一致性。

分享:
扫描分享到社交APP
上一篇
下一篇