macOS查看与安装Java JDK的完整步骤

 更新时间:2026年03月09日 08:52:54   作者:独隅  
本文详细介绍了在macOS上查看、安装、配置和管理Java JDK的步骤,包括使用官网下载、Homebrew、SDKMAN和IntelliJ IDEA内置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.4Java 42004年之前
Java 5.0Java 52004年
Java 6Java 62006年
Java 7Java 72011年
Java 1.8Java 82014年(最常用)
Java 9Java 92017年
Java 10Java 102018年
Java 11Java 112018年(LTS)
Java 17Java 172021年(LTS)
Java 21Java 212023年(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/M3macOS ARM64 DMG Installer
IntelmacOS 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 为例)
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:

# 1. 安装 SDKMAN
curl -s "https://get.sdkman.io" | bash

# 2. 初始化 SDKMAN
source "$HOME/.sdkman/bin/sdkman-init.sh"

# 3. 验证安装
sdk version

使用 SDKMAN 管理 Java:

# 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 编辑配置文件

# 编辑配置文件
nano ~/.zshrc

4.3 添加环境变量

# ========== 单版本配置(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 使配置生效

# 重新加载配置文件
source ~/.zshrc

# 验证
echo $JAVA_HOME
java -version

五、多版本管理

5.1 使用 /usr/libexec/java_home 切换

# 查看所有已安装版本
/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 中添加:

# 创建切换函数
jdk() {
    version=$1
    export JAVA_HOME=$(/usr/libexec/java_home -v"$version")
    java -version
}

使用方法:

jdk 1.8    # 切换到 Java 8
jdk 17     # 切换到 Java 17
jdk 21     # 切换到 Java 21

5.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_HOME
echo $JAVA_HOME

# 检查 Java 路径
which java
which 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. 检查 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 版本导致冲突

解决方案:

# 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

解决方案:

# 修复权限
sudo chown -R $(whoami) /Library/Java/JavaVirtualMachines

# 或使用 sudo 执行
sudo java -version

7.4 M1/M2 芯片兼容问题

问题: ARM 架构兼容性问题

解决方案:

# 1. 下载 ARM64 版本(推荐)
# 2. 或使用 Rosetta 2 转译
softwareupdate --install-rosetta

# 3. 验证架构
java -version
# 应显示 "aarch64" 或 "arm64"

7.5 卸载 Java

# 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 安装
Homebrewbrew install openjdk@17brew install openjdk@8
SDKMANsdk install java 17.0.8-temsdk install java 8.0.382-tem

常用命令速查

命令用途
java -version查看 Java 版本
javac -version查看编译器版本
/usr/libexec/java_home -V查看所有已安装版本
echo $JAVA_HOME查看当前 JAVA_HOME
source ~/.zshrc刷新环境变量

最佳实践建议

  1. 新手推荐:使用官网 DMG 安装,简单直接
  2. 开发者推荐:使用 Homebrew + SDKMAN,方便多版本管理
  3. 生产环境:使用 LTS 版本(Java 17 或 21)
  4. 老项目维护:保留 Java 8 环境
  5. 定期更新:关注安全更新,及时升级小版本

按照以上指南操作,你应该能在 macOS 上顺利完成 Java JDK 的查看、安装和配置。

以上就是macOS查看与安装Java JDK的完整步骤的详细内容,更多关于macOS查看与安装Java JDK的资料请关注脚本之家其它相关文章!

相关文章

  • Java的finally块居然没执行的6种问题解决

    Java的finally块居然没执行的6种问题解决

    本文探讨了Java中try-catch-finally结构下finally块可能不执行的情况,并分析了JVM层面的原理,文章列出了6种特殊情况,下面就来详细的介绍一下
    2026-05-05
  • Springboot四种事件监听的实现方式详解

    Springboot四种事件监听的实现方式详解

    这篇文章主要介绍了Springboot四种事件监听的实现方式,事件监听是一种机制,可以定义和触发自定义的事件,以及在应用程序中注册监听器来响应这些事件,需要的朋友可以参考下
    2022-06-06
  • Idea安装bpmn插件actiBPM的详细过程(解决高版本无法安装actiBPM插件)

    Idea安装bpmn插件actiBPM的详细过程(解决高版本无法安装actiBPM插件)

    这篇文章主要介绍了Idea安装bpmn插件actiBPM的详细过程(解决高版本无法安装actiBPM插件)的问题,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-01-01
  • java 生成二维码实例

    java 生成二维码实例

    这篇文章主要介绍了java 生成二维码的实例,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • Java中如何利用Set判断List集合中是否有重复元素

    Java中如何利用Set判断List集合中是否有重复元素

    在开发工作中,我们有时需要去判断List集合中是否含有重复的元素,这时候我们不需要找出重复的元素,我们只需要返回一个 Boolean 类型就可以了,下面通过本文给大家介绍Java中利用Set判断List集合中是否有重复元素,需要的朋友可以参考下
    2023-05-05
  • java实现全局监听键盘详解

    java实现全局监听键盘详解

    这篇文章主要为大家详细介绍了java实现全局监听键盘的相关知识,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的小伙伴可以了解下
    2024-01-01
  • 带你深入理解MyBatis缓存机制

    带你深入理解MyBatis缓存机制

    缓存是一般的ORM框架都会提供的功能,目的就是提升查询的效率和减少数据库的压力,跟Hibernate 一样,MyBatis 也有一级缓存和二级缓存,并且预留了集成第三方缓存的接口,这篇文章主要给大家介绍了关于MyBatis缓存机制的相关资料,需要的朋友可以参考下
    2021-10-10
  • 基于Java实现Socket编程入门

    基于Java实现Socket编程入门

    Java最初是作为网络编程语言出现的,使得客户端和服务器的沟通变成了现实,而在网络编程中,使用最多的就是Socket,本文就来介绍一下基于Java实现Socket编程入门,感兴趣的可以来了解一下
    2022-03-03
  • JAVA8独有的map遍历方式(非常好用)

    JAVA8独有的map遍历方式(非常好用)

    这篇文章主要介绍了JAVA8独有的map遍历方式(非常好用),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • java实现日历窗口小程序

    java实现日历窗口小程序

    这篇文章主要为大家详细介绍了java实现日历窗口小程序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06

最新评论