gradlew使用错误的Java版本

时间:2018-04-20 04:14:50

标签: java android macos gradle

我正在使用Kotlin开发一个Android应用程序。我通过命令行运行kotlin linter ./gradlew klint 但它给了我一个错误:

  

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 - 空

3 个答案:

答案 0 :(得分:1)

  

最新的OpenJDK 的副本与Android Studio 2.2及更高版本捆绑在一起,这是我们建议您用于Android项目的JDK版本。

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

但是,这仅用于在Android Studio 中构建您的应用,而不是来自gradlew的终端,否则,它将使用您操作系统上的任何内容' s $PATH变量。

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

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

但我的建议是使用操作系统的机制来安装Java。

为了便于Java库管理(在Linux和Mac上),您可以尝试使用sdkman

答案 1 :(得分:1)

通过添加以下内容解决了该问题:

/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. 嵌入Android Studio的Java(/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home/bin/
  4. 在我的情况下,gradlew总是使用来自MAC的java(点号1)。 因此,当我在路径变量的开头添加“从oracle(第2点)下载的java”时,它开始使用来自oracle和gradlew命令的那个。

答案 2 :(得分:0)

gradle.properties可以更新为指向Android Studio随附的嵌入式JDK。

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