0

0

如何在Mac中通过Homebrew安装Java_brew tap命令与版本管理

P粉602998670

P粉602998670

发布时间:2026-03-01 11:52:03

|

421人浏览过

|

来源于php中文网

原创

brew tap 是启用第三方仓库的命令,因 homebrew 官方不维护 java 多版本包,需通过 brew tap adoptium/tap 等引入 temurin 等 jdk 发行版,再用 brew install --cask temurin21-jdk 安装指定版本。

如何在mac中通过homebrew安装java_brew tap命令与版本管理

brew tap 是什么,为什么不能直接 brew install java

Homebrew 官方仓库(core)不提供 java 公共包,因为 Java 不是单一版本、单一实现的工具——它有 OpenJDK、Oracle JDK、多个 LTS 和非 LTS 版本,还有不同厂商(Eclipse Temurin、Azul Zulu、Amazon Corretto)的构建。所以 Homebrew 把它们收拢到第三方 tap 里统一管理。brew tap 就是用来启用这些第三方仓库的命令,不是安装 Java 的替代操作,而是前置必要步骤。

常见错误现象:brew install java 报错 Error: No available formula with the name "java",或装出来的是 openjdk 但版本太旧、没带 javacjava -version 显示不匹配。

  • 必须先运行 brew tap homebrew/cask-versions(用于老版本如 Java 8/11)和 brew tap homebrew/cask-adoptopenjdk(已弃用,别用)
  • 当前推荐的是 brew tap homebrew/cask-versions + brew tap adoptium/tap(Temurin 官方维护,LTS 支持最稳)
  • 执行 brew tap 可查看已启用的 tap 列表,确认 adoptium/tap 在其中

怎么装指定 Java 版本(比如 JDK 17 或 JDK 21 LTS)

Adoptium 提供了按版本号命名的 cask,例如 temurin17-jdktemurin21-jdk,不是靠 brew install openjdk@17 这类公式(formula)——那是编译型安装,不带完整 JRE、常缺 jshelljpackage,且默认不配置 JAVA_HOME

使用场景:需要长期支持版(LTS)、明确要求 JDK 21 的新特性(比如 virtual threads)、或 CI 环境中复现本地 Java 行为。

立即学习Java免费学习笔记(深入)”;

HueBit AI
HueBit AI

一站式AI艺术创作工具

下载
  • 装 JDK 21:brew install --cask temurin21-jdk
  • 装 JDK 17:brew install --cask temurin17-jdk
  • 装 JDK 8(仅限 legacy 项目):brew install --cask temurin8-jdk(注意:需提前 brew tap homebrew/cask-versions
  • 装完后,Java 二进制路径在 /opt/homebrew/opt/temurin21-jdk/libexec/openjdk.jdk(Apple Silicon)或 /usr/local/opt/temurin21-jdk/libexec/openjdk.jdk(Intel)

JAVA_HOME 怎么设才不翻车

Mac 上 Java 启动器(比如 IntelliJ、Gradle、Maven)严重依赖 JAVA_HOME 环境变量。Homebrew 装的 Temurin 不会自动写入 shell 配置,手动设错路径是最高频的“明明装了却用不了”原因。

容易踩的坑:export JAVA_HOME=$(/usr/libexec/java_home) 会指向系统自带或最早装的 JDK,不是你刚装的 Temurin;/usr/libexec/java_home -V 可列出所有已注册 JDK,但 Homebrew 安装的 Temurin 默认**不会自动注册进系统 Java list**,除非你运行一次 sudo ln -sfn /opt/homebrew/opt/temurin21-jdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/temurin-21.jdk(可选,但推荐)

  • 安全做法:在 ~/.zshrc 里写死路径,例如:export JAVA_HOME=/opt/homebrew/opt/temurin21-jdk/libexec/openjdk.jdk/Contents/Home
  • 验证是否生效:echo $JAVA_HOMEjava -version 必须一致
  • 如果同时装了多个版本,别用 $(/usr/libexec/java_home -v 21) ——它可能找不到 Temurin,除非你先软链注册

换版本时为什么 brew uninstall 不够,还得清理残留

Homebrew 卸载 cask 只删二进制和元数据,但 JAVA_HOME、shell 配置、IDE 缓存、甚至 /Library/Java/JavaVirtualMachines/ 下的软链接都还在。下次 java -version 还可能报旧版本,或者 Gradle 报 Unsupported class file major version

性能影响不大,但兼容性风险高:比如用 JDK 21 编译的 class 文件,被 IDE 误用 JDK 17 运行时加载,直接 java.lang.UnsupportedClassVersionError

  • 卸载前先确认当前用的版本:java -versionecho $JAVA_HOME
  • 卸载命令:brew uninstall --cask temurin17-jdk
  • 手动删掉旧软链(如有):sudo rm -f /Library/Java/JavaVirtualMachines/temurin-17.jdk
  • 检查并更新 ~/.zshrc 中的 JAVA_HOME 行,重载:source ~/.zshrc
  • IntelliJ 用户还要去 Preferences > Project > Project SDK 里手动切换,它不会自动感知 Homebrew 更换

最麻烦的点其实不在安装,而在环境变量和 IDE 的双重绑定——改完终端生效,不代表 IDE 也用了新 JDK。这点很容易被忽略,直到跑测试突然失败才回头查。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
eclipse教程
eclipse教程

php中文网为大家带来eclipse教程合集,eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。php中文网还为大家带来eclipse的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

193

2023.06.14

eclipse怎么设置中文
eclipse怎么设置中文

eclipse设置中文的方法:除了设置界面为中文外,你还可以为Eclipse添加中文插件,以便更好地支持中文编程。例如,你可以安装EBNF插件来支持中文变量名,或安装Chinese Helper来提供中文帮助文档。本专题为大家提供eclipse设置中文相关的各种文章、以及下载和课程。

804

2023.07.24

c语言编程软件有哪些
c语言编程软件有哪些

c语言编程软件有GCC、Clang、Microsoft Visual Studio、Eclipse、NetBeans、Dev-C++、Code::Blocks、KDevelop、Sublime Text和Atom。更多关于c语言编程软件的问题详情请看本专题的文章。php中文网欢迎大家前来学习。

619

2023.11.02

Eclipse版本号有哪些区别
Eclipse版本号有哪些区别

区别:1、Eclipse 3.x系列:Eclipse的早期版本,包括3.0、3.1、3.2等;2、Eclipse 4.x系列:Eclipse的最新版本,包括4.0、4.1、4.2等;3、Eclipse IDE for Java Developers等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

178

2024.02.23

eclipse和idea有什么区别
eclipse和idea有什么区别

eclipse和idea的区别:1、平台支持;2、内存占用;3、插件系统;4、智能代码提示;5、界面设计;6、调试功能;7、学习曲线。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

148

2024.02.23

eclipse设置中文全教程
eclipse设置中文全教程

本专题整合了eclipse设置中文相关教程,阅读专题下面的文章了解更多详细操作。

111

2025.10.10

eclipse字体放大教程
eclipse字体放大教程

本专题整合了eclipse字体放大教程,阅读专题下面的文章了解更多详细内容。

145

2025.10.10

eclipse左边栏不见了解决方法
eclipse左边栏不见了解决方法

本专题整合了eclipse左边栏相关教程,阅读专题下面的文章了解更多详细内容。

116

2025.10.15

Golang 测试体系与代码质量保障:工程级可靠性建设
Golang 测试体系与代码质量保障:工程级可靠性建设

Go语言测试体系与代码质量保障聚焦于构建工程级可靠性系统。本专题深入解析Go的测试工具链(如go test)、单元测试、集成测试及端到端测试实践,结合代码覆盖率分析、静态代码扫描(如go vet)和动态分析工具,建立全链路质量监控机制。通过自动化测试框架、持续集成(CI)流水线配置及代码审查规范,实现测试用例管理、缺陷追踪与质量门禁控制,确保代码健壮性与可维护性,为高可靠性工程系统提供质量保障。

6

2026.02.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Kotlin 教程
Kotlin 教程

共23课时 | 4万人学习

C# 教程
C# 教程

共94课时 | 10.4万人学习

Java 教程
Java 教程

共578课时 | 74.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号