我想为 M1 MacBook 编译 OpenJDK 11。
首先,我尝试使用 Zulu JDK,但我没有找到编译它的方法。
然后,我尝试在 M1 上尝试编译 OpenJDK,但是当我运行 sh configure
时会报错。
错误是:
<块引用>configure:目标(64)中测试的位数不同于 预期在目标 (32) 中找到的位数配置: 错误:无法继续。
那么,我该如何编译它?
答案 0 :(得分:5)
我想在 M1 MacBook 上编译 jdk。
不要尝试编译 OpenJDK。代码库庞大而复杂。而且没有必要,因为其他人提供了构建和安装程序。
对于使用 Apple Silicon 而不是 Intel 的 Mac,自 2021 年 8 月起,我建议对 macOS / AArch64 使用 early-access build of Java 17。正式版将于 9 月发布,可能是 LTS。
或者,使用由不同供应商提供的早期 Java 版本的构建。例如,Azul Systems announced 2020-11 计划为基于 Apple Silicon、ARM 的 Mac 提供 OpenJDK 8、11、13 和 15 的构建版本。
我们中很少有人编译过庞大而复杂的 OpenJDK 代码库。相反,我们会寻找提供构建和安装程序的多家供应商中的任何一家。
目前,我建议您使用 early-access build of Java 17 在 Apple Silicon Mac 上本机运行。选择 macOS / AArch64 项目。请报告您遇到的任何问题。
稍后,当 Java 17 于 2021-09 年正式发布时,我希望您可以选择来自多个供应商中的任何一个的构建/安装程序,例如 SAP、Red Hat/IBM、BellSoft、Azul Systems、Oracle、Adoptium/AdoptOpenJDK 、微软、亚马逊、Pivotal 等。这些构建/安装程序将主要或完全基于 OpenJDK 代码库。
仅供参考,Java 17 预计将成为下一个 long-term support (LTS) 版本,支持多年。
我自己在我的 M1 MacBook Pro 上使用早期访问的 Java 17,在 Big Sur 上使用 IntelliJ 2021.x 和 Maven。运行良好,没有问题。
作为 commented,您的具体错误可能是由于您为 32 位 ARM 而不是 Apple 在其 M1 芯片中使用的 64 位 ARM 编译。
如果您坚持要尝试编译 OpenJDK,我建议您检查 Adoptium/AdoptOpenJDK 上的开源工具。在 OpenJDK 站点上构建早期访问版本的工具也可能是开源的,但我不确定。
答案 1 :(得分:0)
您可以在 Homebrew 的帮助下在 M1 MacBook 上构建 OpenJDK 11.0.10,运行:
brew install --build-from-source --verbose openjdk@11
Xcode 是先决条件,您可以从那里下载它 https://developer.apple.com/download/more/(需要 Apple ID)。
您可能还必须运行:
xcode-select --install
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
我已经对其进行了测试,它构建得非常完美。
如果您想构建最后一个版本(撰写本文时为 11.0.12),您必须将补丁 https://raw.githubusercontent.com/Homebrew/formula-patches/6e757d7b/openjdk%4011/aarch64.diff 调整到此版本。
如果你成功了,请做 PR。
== 更新 ==
已有 PR 但已关闭:https://github.com/Homebrew/homebrew-core/pull/81649