macOS 查看与安装 Java JDK 全面指南

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.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 为例)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 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_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-version

7.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 安装
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 的查看、安装和配置。如有其他问题,欢迎继续咨询!


Read more

【Java 开发日记】我们来说一下 bean 的生命周期

【Java 开发日记】我们来说一下 bean 的生命周期

目录 Bean 生命周期的详细步骤 第一阶段:Bean 的元数据配置与容器启动 第二阶段:Bean 的实例化与初始化(核心生命周期) 第三阶段:Bean 的使用与销毁 特殊情况的处理 总结与记忆技巧 为了更直观地理解,我们可以将整个生命周期分为几个大的阶段,下图清晰地展示了这一过程: Bean 生命周期的详细步骤 第一阶段:Bean 的元数据配置与容器启动 1. 配置元数据:首先,你需要通过 XML、Java 注解(如 @Component, @Service, @Autowired)或 Java 配置类(@Configuration, @Bean)来定义 Bean。 2. 容器启动:Spring 容器(如 ApplicationContext)启动,加载并解析这些配置元数据,生成每个

By Ne0inhk
Java 实战:基于高德周边检索 API 获取耒阳童车产业园企业分布数据

Java 实战:基于高德周边检索 API 获取耒阳童车产业园企业分布数据

目录 一、前言 1.1 耒阳童车产业园项目背景 1.2 周边检索API的必要性 二、高德周边检索服务简介 2.1 服务简介 2.2 核心请求参数 2.3 核心响应参数 三、Java应用程序实现 3.1 开发环境准备 3.2 UnitHttp接口定义(原生Http工具类) 3.3 Java主程序调用(高德API接入+数据解析) 四、成果展示 4.1 产业园位置概述 4.2 1公里范围内企业列表 4.3 2公里范围内企业列表 4.4 3公里范围内企业列表 五、总结

By Ne0inhk
计算机毕设 java 基于 Java+Spring 的疫苗接种管理系统的设计与实现 基于 Java 的智能疫苗接种预约与记录系统设计与实现 Spring Boot 框架下疫苗接种全流程管理

计算机毕设 java 基于 Java+Spring 的疫苗接种管理系统的设计与实现 基于 Java 的智能疫苗接种预约与记录系统设计与实现 Spring Boot 框架下疫苗接种全流程管理

计算机毕设 java 基于 Java+Spring 的疫苗接种管理系统的设计与实现 69geq9(配套有源码 程序 mysql 数据库 论文)本套源码可以先看具体功能演示视频领取,文末有联 xi 可分享 在公共卫生体系不断完善的背景下,疫苗接种作为预防疾病的关键手段,其管理工作面临着需求增长、流程繁琐等挑战。传统疫苗接种管理模式存在预约不便、信息查询困难、接种记录分散等问题,难以满足用户便捷接种和机构规范化管理的需求。随着互联网技术的发展,构建一套信息化的疫苗接种管理系统成为提升服务质量的重要举措,该系统能够实现疫苗信息查询、在线预约、接种记录跟踪等功能,优化接种流程,保障公共卫生服务的高效开展。 系统基于 Java 语言、Spring Boot 框架和 MySQL 数据库开发,采用 B/S 架构设计,运行于 Windows 11 操作系统。核心功能涵盖个人中心、用户管理、疫苗信息管理、

By Ne0inhk
HTML5+CSS3+JavaScript实现高木同学圣诞树GalGame完整开发指南

HTML5+CSS3+JavaScript实现高木同学圣诞树GalGame完整开发指南

HTML5+CSS3+JavaScript实现高木同学圣诞树GalGame完整开发指南 摘要:圣诞节快要到了,本文详细介绍了一个基于Web技术栈开发的完整GalGame(美少女游戏)项目。从项目架构设计、核心技术实现到性能优化,全面阐述如何使用纯前端技术构建具有丰富交互功能的视觉小说游戏。项目包含完整的对话系统、角色表情管理、分支剧情和存档功能,是Web前端技术在游戏开发领域应用的优秀实践案例。 📋 目录 * 1. 项目概述与目标 * 2. 技术架构选型 * 3. 核心功能实现 * 4. 界面设计与响应式布局 * 5. 开发难点与解决方案 * 6. 性能优化与用户体验 * 7. 部署与运行指南 * 8. 扩展功能与未来展望 * 9. 总结与收获 1. 项目概述与目标 1.1 项目背景 随着HTML5、CSS3和现代JavaScript技术的快速发展,Web平台已经能够承载复杂的交互应用。GalGame作为强调剧情叙事和角色互动的游戏类型,非常适合使用Web技术来实现。本项目选择热门动漫《擅长捉弄人的高木同学》作为题材,结合圣诞节主题,开发一个温馨有趣

By Ne0inhk