繁体   English   中英

如何在 M1 Macbook 上编译 OpenJDK 11?

[英]How to compile OpenJDK 11 on an M1 Macbook?

我想为 M1 MacBook 编译 OpenJDK 11。

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

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

错误是:

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

那么,我该如何编译呢?

tl;博士

我想在 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、亚马逊、Pivo​​tal 等。 这些构建/安装程序将主要或完全基于 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

我已经测试过它,它完美地构建。

我已经安装了 Android Studio 版本,请看截图在此处输入图片说明

我在构建 Flutter 应用程序时遇到问题(安装 JAVA ),所以我安装了 JDK 17 但它不兼容。

我去过AZUL

我安装了第一个 .dmg 文件。 请看截图在此处输入图片说明

它将解决使用 M1 Mac 构建 Gradle 和 APK 的问题

您现在可以使用 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM