詹金斯:您的JAVA_HOME在OS X上无效

Exp*_*lls 0 java macos android jenkins

我正在使用Jenkins在Mac Stadium VM上构建一个android项目。

当我将VNC插入虚拟机时,我可以很好地构建项目。Java安装在/usr/bin/java,我的$PATH包含/usr/bin

当我从Jenkins作业运行相同的命令时,它失败并显示

ERROR: JAVA_HOME is set to an invalid directory: /var/lib/jenkins/jdk1.8.0_25

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.
Run Code Online (Sandbox Code Playgroud)

/var/lib/jenkins/jdk...在VM上不存在。我也尝试将构建作业更新为include export JAVA_HOME=/usr/bin,但是随后出现另一个错误:

Error: Failed to run "java -version", make sure that you have a JDK installed.
You can get it from: http://www.oracle.com/technetwork/java/javase/downloads.
Your JAVA_HOME is invalid: /usr/bin
Run Code Online (Sandbox Code Playgroud)

所有其他步骤似乎都可以正常工作,因此我可以确定代码已下载到工作区,其他所有内容均已正确安装,并且正如我所说的,我可以直接从命令行在VM上构建android。

如何使Jenkins在VM上构建?

mek*_*azu 6

在Mac上设置JAVA_HOME的最佳方法是java_home从oracle下载并安装所需的JDK之后使用:

export JAVA_HOME=`/usr/libexec/java_home`
Run Code Online (Sandbox Code Playgroud)

如果您希望Jenkins使用旧版本的JDK,请确保使用-v标志:

export JAVA_HOME=`/usr/libexec/java_home -v 1.6`
Run Code Online (Sandbox Code Playgroud)

要预览位置,只需在终端中输入java_home命令:

$ /usr/libexec/java_home -v 1.7
/Library/Java/JavaVirtualMachines/jdk1.7.0_67.jdk/Contents/Home

$ /usr/libexec/java_home
/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home
Run Code Online (Sandbox Code Playgroud)