如何在 M1 Macbook 上编译 OpenJDK 11?

新手上路,请多包涵

我想为 M1 MacBook 编译 OpenJDK 11。

首先,我尝试使用 Zulu JDK,但我没有找到编译它的方法。

然后,我尝试尝试在 M1 上编译 OpenJDK,但是当我运行 sh configure 时报告错误。

错误是:

配置:目标中测试的位数 (64) 与预期在目标中找到的位数 (32) 不同 配置:错误:无法继续。

那么,我该如何编译呢?

原文由 rainbowecho 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 866
1 个回答

tl;博士

我想在 M1 MacBook 中编译 jdk。

不要尝试编译 OpenJDK。代码库庞大而复杂。不需要,因为 其他人提供二进制文件 和安装程序。

对于使用 Apple Silicon 而不是 Intel x86-64 的 Mac,我建议从几家供应商中的任何一家获取 2021-09 发布的 macOS / AArch64 的 Java 17 分发版。

或者,使用由不同供应商移植到 Apple Silicon 的早期版本的 Java 构建。例如,Azul Systems 宣布 2020-11 计划为基于 ARMApple Silicon Mac 发布 OpenJDK 8 和 11 版本。我看到 该公司现在可以在 Intel Mac 和 Apple Silicon Mac 上下载 Java 11.0.13+8

细节

我们中很少有人编译过庞大而复杂的 OpenJDK 代码库。相反,我们会寻找提供构建和安装程序的几家供应商中的任何一家。

Java 17 于 2021 年 9 月发布。 OpenJDK 正式支持 Apple Silicon 上的 macOS: JEP 391:macOS/AArch64 端口。您可以选择来自多个供应商的构建/安装程序,例如 SAP、Red Hat/IBM、BellSoft、Azul Systems、Oracle、Adoptium/AdoptOpenJDK、Microsoft、Amazon、Pivotal 等。这些构建/安装程序将主要或完全基于 OpenJDK 代码库。

仅供参考,Java 17 是最新 的长期支持 (LTS) 版本,将得到多年支持。

我本人一直在使用 IntelliJ 2021.x 和 Maven on Big SurM1 MacBook Pro 上首先使用早期访问 Java 17,现在使用官方 Java 17 版本。运行良好,没有问题。 Java 18 Early Access 现在可 用于 Intel Mac 和 Apple Silicon Mac。

评论所述,您的特定错误可能是由于您针对 32 位 ARM 而不是 Apple 用于其 M1 芯片64 位 ARM 进行编译。

如果您坚持尝试编译 OpenJDK ,我建议您检查 Adoptium/AdoptOpenJDK 上的开源工具。在 OpenJDK 站点上用于构建早期访问版本的工具也可能是开源的,但我不确定。

原文由 Basil Bourque 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题