Gradle在mac中获取JAVA_HOME的错误值

时间:2016-11-29 09:55:18

标签: macos jenkins gradle gradlew java-home

当尝试使用gradle从Jenkins构建一个Android应用程序时,我 得到以下错误:

ERROR: JAVA_HOME is set to an invalid directory: /usr/lib/jvm/java-8-oracle
Please set the JAVA_HOME variable in your environment to match the location of your Java installation.

Build step 'Invoke Gradle script' changed build result to FAILURE
Build step 'Invoke Gradle script' marked build as failure
Finished: FAILURE

但是,当我检查JAVA_HOME变量时,我得到:

Macs-Mac-mini:~ mac$ echo $JAVA_HOME 
/Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home

正在运行java -version

Macs-Mac-mini:~ mac$ java -version 
java version "1.8.0_112"
Java(TM) SE Runtime Environment (build 1.8.0_112-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.112-b16, mixed mode)

为什么Gradle会找到/usr/lib/jvm/java-8-oracle

尝试Gradle finds wrong JAVA_HOMEGradle does not recognize the JAVA_HOME

2 个答案:

答案 0 :(得分:1)

经过大量调试后发现,Gradle从Jenkins主JDK配置中获取了$ JAVA_HOME变量值而不是来自节点的$ JAVA_HOME变量。

我从Jenkins master中删除了默认的JDK配置路径,Gradle从节点中获取了$ JAVA_HOME变量值。

答案 1 :(得分:0)

您未以Jenkins用户身份登录,因此echo $JAVA_HOME仅显示当前用户的JAVA_HOME,这可能与Jenkins用户不同。

幸运的是,您可以从Jenkins用户界面设置环境变量。 (请参阅this example,只需将JMETER_HOME替换为JAVA_HOME