您好,在 Mac m1 上作業時,Gradle 包裝器任務報告與 gradle 相比不正確的架構:
這是結果./gradlew clean
:
operating system 'Mac OS X'
architecture 'x86-64'
osx
x86_64
x86_64
這是結果gradle clean
:
operating system 'Mac OS X'
architecture 'arm-v8'
osx
aarch_64
aarch64
有人對此有解釋嗎。
附加資訊:輸出gradle --version
------------------------------------------------------------
Gradle 7.4.2
------------------------------------------------------------
Build time: 2022-03-31 15:25:29 UTC
Revision: 540473b8118064efcc264694cbcaa4b677f61041
Kotlin: 1.5.31
Groovy: 3.0.9
Ant: Apache Ant(TM) version 1.10.11 compiled on July 10 2021
JVM: 18.0.1 (Homebrew 18.0.1 0)
OS: Mac OS X 12.2.1 aarch64
這是我的 build.gradle 顯示架構的內容:
println org.gradle.nativeplatform.platform.internal.DefaultNativePlatform.currentOperatingSystem;
println org.gradle.nativeplatform.platform.internal.DefaultNativePlatform.currentArchitecture;
println osdetector.os
println osdetector.arch
println System.getProperty("os.arch")
我使用 Mac m1 生成了 Gradle 包裝器gradle wrapper
。
uj5u.com熱心網友回復:
感謝@Jesper 的評論,這是該問題的解決方案。
TL;博士
列出您系統上的 JVM 并驗證您是否擁有至少一個 (arm64) JVM。
? ~ /usr/libexec/java_home -V
Matching Java Virtual Machines (3):
18.0.1.1 (arm64) "Oracle Corporation" - "OpenJDK 18.0.1.1" /Users/you/Library/Java/JavaVirtualMachines/openjdk-18.0.1.1/Contents/Home
18.0.1.1 (x86_64) "Oracle Corporation" - "OpenJDK 18.0.1.1" /Users/you/Library/Java/JavaVirtualMachines/openjdk-18.0.1.1-1/Contents/Home
18.0.1 (arm64) "Homebrew" - "OpenJDK 18.0.1" /opt/homebrew/Cellar/openjdk/18.0.1/libexec/openjdk.jdk/Contents/Home
/Users/you/Library/Java/JavaVirtualMachines/openjdk-18.0.1.1/Contents/Home
將您的 JAVA_HOME 環境變數設定為 arm64 JVM:
export JAVA_HOME=`export /usr/libexec/java_home -a arm64`
我的情況發生了什么:
這是由系統上安裝的多個 JVM 引起的。一些 JVM 為 arm64 編譯并在本機運行,而另一些 JVM 為 x86_64 編譯并在“轉換器”(rosetta)中運行。
- IntelliJ IDEA 安裝的 Oracle x86_64 JDK。
- Homebrew 安裝的 OpenJDK arm64 作為 gradle 的依賴項。
沒有遵循 openJDK 的“警告”:
==> Caveats
For the system Java wrappers to find this JDK, symlink it with
sudo ln -sfn /opt/homebrew/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk
所以自制軟體安裝的 gradle 使用的是自制軟體安裝的 JVM。但是 gradlew 腳本使用的是默認系統 JVM(Oracle x86_64 JVM)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/476114.html
標籤:爪哇 毕业典礼 苹果-m1 openjdk-17
上一篇:無法決議模塊./index