[特殊字符] Mac 安装 JDK 8 最稳最全教程(Homebrew 方式)

在 macOS 上开发 Java 项目时,很多人需要安装 JDK 8
使用 Homebrew 安装不仅方便,还能轻松管理多个版本(如 JDK 8、11、17)。
本文提供从安装到环境变量配置的完整步骤,小白照着也能成功。


🧩 一、确认 Homebrew 是否安装

打开终端,输入:

brew -v 
  • 如果显示版本号,说明已安装 Homebrew,可跳到下一步。
  • 如果提示 command not found,请执行以下命令安装:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

安装完成后,配置环境变量(zsh 默认使用 ~/.zprofile):

echo'eval "$(/opt/homebrew/bin/brew shellenv)"'>> ~/.zprofile eval"$(/opt/homebrew/bin/brew shellenv)"

🧱 二、添加 JDK 版本源(推荐)

为了安装不同版本的 JDK(8、11、17、21),执行:

brew tap homebrew/cask-versions 

☕ 三、安装 JDK 8(推荐 Zulu 或 Temurin)

目前 mac 上主流有两种稳定选择:

发行版维护方特点推荐度
Zulu (Azul)Azul Systems免费商用、苹果签名、安全稳定、ARM/M1 优化好⭐⭐⭐⭐⭐
Temurin (Adoptium)Eclipse 基金会稳定可靠、社区活跃、开源纯净⭐⭐⭐⭐☆

最推荐方式:安装 Zulu JDK 8

brew install --cask zulu8 
由 Azul 提供官方签名和长期支持版本,兼容 IntelliJ IDEA、VSCode、Maven、Gradle 等工具。

备选方案:安装 Temurin JDK 8

brew install --cask temurin8 
由 Eclipse Adoptium 提供,同样免费稳定,区别主要在维护方。

⚙️ 四、配置 JAVA_HOME 环境变量

安装完成后,让系统识别默认 JDK。

1️⃣ 查看已安装的 JDK

/usr/libexec/java_home -V 

示例输出:

1.8.0_392, arm64: "Zulu 8" /Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home 

2️⃣ 配置环境变量(zsh 用户)

编辑配置文件:

nano ~/.zshrc 

在文件末尾添加:

exportJAVA_HOME=$(/usr/libexec/java_home -v 1.8)exportPATH=$JAVA_HOME/bin:$PATH

保存退出后,刷新配置:

source ~/.zshrc 

3️⃣ 验证是否生效

java -version 

示例输出:

openjdk version "1.8.0_392" OpenJDK Runtime Environment (Zulu 8.74.0.17-CA)(build 1.8.0_392-b08) OpenJDK 64-Bit Server VM (Zulu 8.74.0.17-CA)(build 25.392-b08, mixed mode) 

✅ 表示安装成功。


🔁 五、可选:多版本 JDK 管理(jenv)

如果你还需要使用 JDK 11、17,可以安装 jenv 统一管理:

brew install jenv 

配置到 zsh:

echo'export PATH="$HOME/.jenv/bin:$PATH"'>> ~/.zshrc echo'eval "$(jenv init -)"'>> ~/.zshrc source ~/.zshrc 

添加 JDK:

jenv add /Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home jenv add /Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home 

切换版本:

jenv global 1.8 jenv local17

这样可以灵活切换全局或项目级的 JDK 版本。


✅ 六、小结与推荐方案

项目推荐方案
安装方式Homebrew
JDK 版本源homebrew/cask-versions
首选发行版Zulu 8(稳定、免费、苹果签名)
备选发行版Temurin 8(Eclipse 维护)
多版本管理jenv

💡 最简命令汇总(复制即用)

# 安装 Homebrew 版本源 brew tap homebrew/cask-versions # 安装 JDK 8(推荐 Zulu) brew install --cask zulu8 # 配置环境变量echo'export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)'>> ~/.zshrc echo'export PATH=$JAVA_HOME/bin:$PATH'>> ~/.zshrc source ~/.zshrc # 验证 java -version 

🚀 总结

  • Zulu 8 是 macOS 上安装 JDK 8 的最佳选择:
    稳定、签名齐全、M 系列优化好、永久免费可商用。
  • 使用 Homebrew 管理更方便、可快速切换版本。
  • 配合 jenv 管理多版本 JDK,更灵活高效。

Read more

基于 Spring Boot 的 Web 三大核心交互案例精讲

基于 Spring Boot 的 Web 三大核心交互案例精讲

—知识点专栏——JavaEE专栏— 作为 Spring Boot 初学者,理解后端接口的编写和前端页面的交互至关重要。本文将通过三个经典的 Web 案例——表单提交、AJAX 登录与状态管理、以及 JSON 数据交互——带您掌握前后端联调的核心技巧和 Spring Boot 的关键注解。 1. 案例一:表单提交与参数绑定(计算求和) 本案例展示最基础、最传统的 Web 交互方式:HTML 表单提交。 1.1 后端代码:CalcController.java 使用 @RestController 简化接口编写,并通过方法参数接收表单数据。 packagecn.overthinker.springboot;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.

By Ne0inhk
openclaw新手入门指南:一文看懂环境搭建、模型配置与 WebUI 远程访问

openclaw新手入门指南:一文看懂环境搭建、模型配置与 WebUI 远程访问

目录 * 1. 基础设施层:OpenClaw 运行环境的初始化 * 2. 算力与模型层:蓝耘 MaaS 平台的接入配置 * 2.1 协议适配与 JSON 配置 * 3. 编排层:OpenClaw 初始化与 Onboarding 流程 * 3.1 模式选择与基础设置 * 3.2 模型提供商与应用集成策略 * 3.3 技能库(Skills)装载与服务启动 * 4. 网络架构与网关(Gateway)配置 * 4.1 网关暴露与安全策略 * 4.2 Web UI 远程访问与设备配对(Device Pairing) * 5. 高级模型编排与 JSON 配置深度解析

By Ne0inhk
【前端】Vue 组件开发中的枚举值验证:从一个Type属性错误说起

【前端】Vue 组件开发中的枚举值验证:从一个Type属性错误说起

🌹欢迎来到《小5讲堂》🌹 🌹这是《小程序》系列文章,每篇文章将以博主理解的角度展开讲解。🌹 🌹温馨提示:博主能力有限,理解水平有限,若有不对之处望指正!🌹 👨💻 作者简介 🏆 荣誉头衔:2024博客之星Top14 | ZEEKLOG博客专家 | 阿里云专家博主 🎤 经历:曾多次进行线下演讲,亦是 ZEEKLOG内容合伙人 以及 新星优秀导师 💡 信念:“帮助别人,成长自己!” 🚀 技术领域:深耕全栈,精通 .NET Core (C#)、Python、Java,熟悉主流数据库 🤝 欢迎交流:无论是基础概念还是进阶实战,都欢迎与我探讨! 目录 * 前言 * 解决过程 * 一、错误场景还原 * 1.1 错误发生的位置 * 1.2 常见的触发场景 * 二、深入理解 Vue

By Ne0inhk

Linux内核IRQ子系统:核心数据结构深度解析 (基于 Linux 6.6)

引言:中断处理的挑战与抽象 在复杂的现代计算系统中,硬件设备(如网卡、磁盘、键盘)通过中断信号来通知 CPU 有事件需要处理。然而,不同架构(x86, ARM)、不同总线(PCIe, USB)和不同控制器(GIC, APIC, 8259)的中断机制千差万别。如果每个驱动都直接与底层硬件打交道,内核将变得极其臃肿且难以维护。 Linux IRQ 子系统的诞生就是为了解决这一复杂性。它通过一套精巧的、分层的数据结构和接口,向上为设备驱动提供统一、简单的中断注册和管理 API(如 request_irq),向下则通过可插拔的“中断控制器驱动”来适配各种硬件。这套系统的核心就是我们今天要深入剖析的几大数据结构。 更多及时精彩的linux内核子系统分析,请关注VX公众号:linux内核漫游手册. 1. irq_desc - 中断描述符:中断世界的“户口本” 定义位置:

By Ne0inhk