簡體   English   中英

gradlew 使用錯誤的 Java 版本

[英]gradlew uses wrong Java version

我正在使用 Kotlin 開發一個 android 應用程序。 我正在通過命令行 ./gradlew klint 運行 kotlin linter。
但它給了我一個錯誤:

Gradle 4.4 需要 Java 7 或更高版本才能運行。 您當前使用的是 Java 6。

當我檢查項目結構時,我使用的是嵌入式 JDK。
我還將 android studio 更新到最新版本。 我不知道如何將嵌入式 JDK 更新到最新版本。

java version

“1.6.0_65”Java(TM) SE 運行時環境(構建 1.6.0_65-b14-468)Java HotSpot(TM) 64 位服務器 VM(構建 20.65-b04-468,混合模式)

which java - /usr/bin/java

echo $PATH - /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/username/Library/Android/sdk/platform-tools

echo $JAVA_HOME - 空

最新的 OpenJDK副本與 Android Studio 2.2 及更高版本捆綁在一起,這是我們建議您用於 Android 項目的 JDK 版本。

https://developer.android.com/studio/intro/studio-config.html#jdk

然而,這僅用於在 Android Studio 中構建您的應用程序,而不是從帶有gradlew的終端構建您的應用程序,否則,它將使用您操作系統的$PATH變量中的任何內容。

為了使用嵌入式JDK,您至少需要設置JAVA_HOME ,例如,

export JAVA_HOME=/path/to/AndroidStudio/jdk  # TODO: Find this
./gradlew

但是,我的建議是使用操作系統的機制來安裝 Java。

為了輕松管理 Java 庫(在 Linux 和 Mac 上),您可以嘗試使用sdkman

gradle.properties 可以更新為指向 Mac OS 中 Android Studio 附帶的嵌入式 JDK:

org.gradle.java.home=/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home

通過添加以下內容解決了該問題:

/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin

在 PATH 變量的開頭。 我發現的是: 有三個 java 位置。

  1. mac 自帶的 Java ( /usr/bin/java )
  2. 從 oracle 下載的 Java。 ( /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin )
  3. Java 嵌入 Android Studio ( /Applications/Android\\ Studio.app/Contents/jre/jdk/Contents/Home/bin/ )

在我的情況下, gradlew總是使用 MAC 中的 java(點 1)。 因此,當我在路徑變量的開頭添加“從 oracle 下載的 java(點 2)”時,它開始使用來自 oracle 的那個,並且我的 gradlew 命令運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM