簡體   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