繁体   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