如何 运行 jenkins 使用旧版本 Java 而不是 MacOS 上的最新默认版本?

How to run jenkins with old version of Java instead the latest default one on MacOS?

我正在我的 Macbook (High Sierra) 上设置 Jenkins,似乎 Java 的默认版本是 Java 9,这会导致问题 "java.lang.AssertionError: InstanceIdentity is missing its singleton"

我已经将 Mac 的 Java 主页从 9.x 更改为 8,但是当我重新安装时,同样的问题仍然出现。

我检查了管理Jenkins/System信息下的系统属性,值java.specification.version仍然是“9”。

那么如何使用旧版本 Java 安装 Jenkins? 或者有任何解决方法吗?

以下是 OS X 10.13.2 (High Sierra) 对我有用的东西。

  1. 我使用 "brew install jenkins" 安装 Jenkins。例如,您可以从 http://flummox-engineering.blogspot.com/2016/01/installing-jenkins-os-x-homebrew.html 中找到说明。

  2. http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 下载 JDK 8

  3. 将 JAVA_HOME 和 JDK_HOME 设置为指向您下载的版本。 (如果需要,这是你的 .bash_profile。) 例如, 导出 JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home 导出 JDK_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home

  4. 键入 "jenkins --httpPort=9898" 或启动 Jenkins 所需的任何端口。

如果您没有使用 brew 安装,您可以在

打开启动脚本

/Library/Application Support/Jenkins/jenkins-runner.sh

并使用以下行

在脚本顶部设置您的JAVA_HOME
export JAVA_HOME="`/usr/libexec/java_home -v 1.8`"

然后重新启动 Jenkins,你将成为 运行 Jenkins on 1.8