[英]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.