【问题标题】:How to compile OpenJDK 11 on an M1 Macbook?如何在 M1 Macbook 上编译 OpenJDK 11?
【发布时间】:2021-09-22 06:39:43
【问题描述】:

我想为 M1 MacBook 编译 OpenJDK 11。

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

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

错误是:

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

那么,我该如何编译呢?

【问题讨论】:

  • 为什么要这样做?这是一个非常庞大且复杂的软件库,其他人已经完成了这项工作。
  • 为什么要自己构建?甚至还没有 AdoptOpenJDK 构建,因此您自己将其组合在一起似乎是在自找麻烦。 Fwiw 错误很可能表明您正在尝试为 32 位 ARM 构建,m1 是 ARM64。

标签: java java-11 openjdk-11


【解决方案1】:

tl;博士

我想在 M1 MacBook 上编译 jdk。

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

对于使用 Apple Silicon 而不是 Intel x86-64 的 Mac,我建议从多家供应商处获取适用于 macOS / AArch64 的 Java 17 发行版,该发行版于 2021 年 9 月发布。

或者,使用由不同供应商移植到 Apple Silicon 的早期 Java 版本的构建。例如,Azul Systems announced 2020-11 计划为基于 Apple SiliconARM 的 Mac 提供 OpenJDK 8 和 11 的构建。我在 Intel Mac 和 Apple Silicon Mac 上都看到了下载 available now from that company for Java 11.0.13+8

详情

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

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

仅供参考,Java 17 是最新的long-term support (LTS) 版本,将支持多年。

我自己首先在我的M1 MacBook ProIntelliJ 2021.x 和MavenBig Sur 上使用了早期访问Java 17,现在是官方Java 17 版本。运行良好,没有问题。 Java 18 Early Access 是 now available,适用于 Intel Mac 和 Apple Silicon Mac。

作为commented,您的具体错误可能是由于您为32-bit ARM 编译而不是Apple 为他们的M1 chip 使用的64-bit ARM

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

【讨论】:

  • 非常感谢!我会考虑一下
  • 恕我直言,“不要尝试”可能是最糟糕的建议。同意,构建 OpenJDK 真的很复杂。但复杂性不应阻止好奇心。
  • @SergeiRybalkin 我同意你的最后一句话。这就是为什么我在答案末尾给出了一些提示。
【解决方案2】:

您可以在 M1 MacBook 上构建 OpenJDK 11.0.12,在 Homebrew 的帮助下,运行:

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

我已经对其进行了测试,并且可以完美构建。

【讨论】:

    【解决方案3】:

    我已经安装了 Android Studio 版本,请看截图

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

    我去了AZUL

    我安装了第一个 .dmg 文件。 请看截图

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

    【讨论】:

      猜你喜欢
      • 2022-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-24
      • 1970-01-01
      • 2022-08-02
      • 1970-01-01
      • 2021-08-06
      相关资源
      最近更新 更多