[英]How to compile OpenJDK 11 on an M1 Macbook?
我想为 M1 MacBook 编译 OpenJDK 11。
首先,我尝试使用 Zulu JDK,但我没有找到编译它的方法。
然后,我尝试在 M1 上编译 OpenJDK,但是当我运行sh configure
时会报错。
错误是:
配置:目标中测试的位数 (64) 与预期在目标中找到的位数 (32) 不同 配置:错误:无法继续。
那么,我该如何编译呢?
我想在 M1 MacBook 中编译 jdk。
不要尝试编译 OpenJDK。
为macOS / AArch64使用Java 17 的早期访问版本。
我们很少有人编译过庞大而复杂的 OpenJDK 代码库。 相反,我们会寻找提供构建和安装程序的几家供应商中的任何一家。
此外,没有为在 Apple Silicon Mac 计算机上本地运行而编写的 Java 11 代码库。
目前,我建议您使用Java 17的早期访问版本在 Apple Silicon Mac 上本地运行。 选择macOS / AArch64项。 请报告您遇到的任何问题。
稍后,当 Java 17 于 2021-09 年正式发布时,我希望您可以选择来自多个供应商中的任何一个的构建/安装程序,例如 SAP、Red Hat/IBM、BellSoft、Azul Systems、Oracle、Adoptium/AdoptOpenJDK、Microsoft、亚马逊、Pivotal 等。 这些构建/安装程序将主要或完全基于 OpenJDK 代码库。
仅供参考,Java 17 预计将成为下一个长期支持 (LTS) 版本,支持多年。
我自己在我的 M1 MacBook Pro 上使用早期访问 Java 17,在 Big Sur 上使用 IntelliJ 2021.x 和 Maven。 运行良好,没有问题。
正如所评论的,您的特定错误可能是由于您编译 32 位 ARM 而不是 Apple 在其 M1 芯片中使用的 64 位 ARM。
如果您坚持尝试编译 OpenJDK,我建议您检查 Adoptium/AdoptOpenJDK 上的开源工具。 在 OpenJDK 站点上构建早期访问版本的工具也可能是开源的,但我不确定。
您可以在 Homebrew 的帮助下,通过运行以下命令在 M1 MacBook 上构建 OpenJDK 11.0.12:
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
我已经测试过它,它完美地构建。
您现在可以使用 OpenJDK 11.0.15 源代码进行尝试。 以前,M1 CPU 会被检测为 ARM32 (macosx-arm),这就是您看到该错误的原因。
我遇到了同样的问题,这个错误实际上是configure
脚本的修改错误,认为它所有的arm架构都是32位的。可以通过filemake make/autoconf/platform.m4
解决,具体内容如下:
57 arm*)
58 VAR_CPU=arm
59 VAR_CPU_ARCH=arm
60 VAR_CPU_BITS=32 #将32改成64即可
61 VAR_CPU_ENDIAN=little
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.