Java 8 在Mac上:值得经历的奥德赛
您打开这篇文章——很可能是因为遇到了一个经典问题。您在Mac上下载了Java 8 (JDK 1.8),运行了安装程序,然后……什么都不起作用。终端输入java -version显示"not found",或者更令人沮丧的是,显示的是您半年前为了实验安装的Java 14。
欢迎加入这个俱乐部。"How to install Java 8 on Mac"这个问题是Stack Overflow上最热门的问题之一,这并非偶然。macOS(尤其是Catalina和Big Sur之后)在处理旧版Java时是一个挑剔的系统。但别担心:我们将分析即使是经验丰富的开发人员也会犯的前5个错误,并向您展示如何避免它们。
顺便说一句,如果您正在学习Java并想了解为什么版本8至今仍然如此流行(剧透:Stream API、Lambda表达式和稳定性),那么安装完成后,我们将编写几行代码来证明这一点。
错误 #1:下载了错误的版本(Oracle vs OpenJDK)
最常见的陷阱。您访问Oracle网站,看到一堆"Download"按钮,然后下载了JRE而不是JDK。或者反过来——下载了Linux版本。
如何正确操作?
要进行Java 8开发,您需要JDK (Java Development Kit),而不是JRE。JRE只是运行时环境,没有javac编译器。
选项 A(Oracle JDK — 经典):
- 访问Oracle JDK 8 存档页面。
- 接受许可协议(是的,您需要登录或创建一个Oracle账户——这让很多人烦恼)。
- 下载
jdk-8u351-macosx-x64.dmg(或8uXXX系列中的更新版本)。
选项 B(OpenJDK — 免费且无需账户):
- 使用Adoptium(前身为AdoptOpenJDK):下载Temurin 8。
- 选择macOS,架构选择x64(即使在M1/M2上——通过Rosetta 2也能完美运行)。
- 下载
.pkg文件。
建议: 出于学习目的和与旧项目的兼容性,请选择OpenJDK (Temurin)。Oracle JDK 8不再接收公共安全更新。
错误 #2:忽略macOS的"安全门"(Gatekeeper)
您安装了JDK,但在终端尝试运行java -version时得到:
-bash: java: command not found或者更糟的是,出现消息:““java” cannot be opened because the developer cannot be verified.”
这是Gatekeeper——macOS的安全系统。它会阻止安装未经Apple签名或非从App Store下载的软件包。
解决方案:
- 打开系统设置 → 安全性与隐私。
- 在底部您会看到消息:“程序已被阻止...” — 点击“仍要打开”按钮。
- 如果没有按钮,请通过右键单击 → 打开(不要双击)来启动安装程序。
之后,安装将顺利进行。
错误 #3:忘记配置JAVA_HOME(或配置到了错误的位置)
这可能是Stack Overflow上最常见的问题。您安装了Java 8,但系统仍然看到旧版本(或者根本看不到任何版本)。
检查当前版本:
/usr/libexec/java_home -V此命令将显示所有已安装的