Android Studio 如何启动 Gradle 守护进程?

How does Android Studio launch the Gradle Daemon?

我 运行遇到一个问题,其中 Gradle 守护程序(由 Android Studio 通过工具 API 启动)使用不同的 Java 版本比 运行 通过命令行时的版本。

我没有为 JAVA_HOME 设置任何值,java 在我的路径中:

java -version
java version "1.8.0_72"
Java(TM) SE Runtime Environment (build 1.8.0_72-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.72-b15, mixed mode)

我写了一个调试任务:

task printDebug << {
    println "command: " + System.getProperty("sun.java.command");
    println "JAVA_HOME: " + System.env.'JAVA_HOME';
    println "Java Version: " + org.gradle.internal.jvm.Jvm.current();
}

当通过 Studio 运行 时,生成:

command: org.gradle.launcher.daemon.bootstrap.GradleDaemon 2.8
JAVA_HOME: null
Java Version: 1.7.0_71 (Oracle Corporation 24.71-b01)

但是,当通过命令行 运行 时,会产生:

command: org.gradle.wrapper.GradleWrapperMain printDebug
JAVA_HOME: null
Java Version: 1.8.0_72 (Oracle Corporation 25.72-b15)

如何选择用于 gradle 守护程序的 java 可执行文件?它是如何推出的?对于它的价值,Android Studio 正在使用 Java (1.8) 的预期版本,如 'About Android Studio' 所报告的那样。

Gradle 守护程序将使用您为项目选择的 JDK,而不是用于 运行 IntelliJ/Android 的 JRE/JDK工作室。

要更改此设置,请打开项目的 项目结构 对话框(文件 -> 项目结构),然后更新 JDK 位置: