詹金斯“无法安装 JDK”退出代码=-1

Posted

技术标签:

【中文标题】詹金斯“无法安装 JDK”退出代码=-1【英文标题】:Jenkins "Failed to install JDK" Exit code=-1 【发布时间】:2019-01-16 16:17:14 【问题描述】:

(在此处添加,因为我在任何地方都没有找到答案)

我将 Jenkins 配置为从“全局工具配置”>“JDK 安装”菜单自动安装 JDK。该选项适用于所有 14 个节点(各种 Windows 和 Linux),但只有一个。

具有 20 个执行程序的服务器 Windows Server 2012 R2 (amd64),它已经运行了不到 3 年没有问题。

构建控制台中的日志文件引用(即 ...tools\hudson.model.JDK\install1873722508778839961log)为空。

构建的控制台显示如下:

[EnvInject] - 加载节点环境变量。安装 E:\Jenkins_APA_8080\tools\hudson.model.JDK\Oracle_Java_8.0_191\jdk.exe [Oracle_Java_8.0_191] $ E:\Jenkins_APA_8080\tools\hudson.model.JDK\Oracle_Java_8.0_191\jdk.exe /s ADDLOCAL="ToolsFeature" REBOOT=ReallySuppress INSTALLDIR=E:\Jenkins_APA_8080\tools\hudson.model.JDK\Oracle_Java_8.0_191 /L E:\Jenkins_APA_8080\tools\hudson.model.JDK\install1873722508778839961log 安装 JDK 失败。退出代码=-1 错误:发生严重错误 org.jenkinsci.lib.envinject.EnvInjectException:hudson.AbortException 在 org.jenkinsci.plugins.envinject.util.RunHelper.getBuildVariables(RunHelper.java:137) 在 org.jenkinsci.plugins.envinject.EnvInjectListener.setUpEnvironmentWithoutJobPropertyObject(EnvInjectListener.java:235) 在 org.jenkinsci.plugins.envinject.EnvInjectListener.setUpEnvironment(EnvInjectListener.java:51) 在 hudson.model.AbstractBuild$AbstractBuildExecution.createLauncher(AbstractBuild.java:542) 在 hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:462) 在 hudson.model.Run.execute(Run.java:1810) 在 hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:543) 在 hudson.model.ResourceController.execute(ResourceController.java:97) 在 hudson.model.Executor.run(Executor.java:429) 引起: hudson.AbortException 在 hudson.tools.JDKInstaller.install(JDKInstaller.java:292) 在 hudson.tools.JDKInstaller.performInstallation(JDKInstaller.java:157) 在 hudson.tools.InstallerTranslator.getToolHome(InstallerTranslator.java:72) 在 hudson.tools.ToolLocationNodeProperty.getToolHome(ToolLocationNodeProperty.java:109) 在 hudson.tools.ToolInstallation.translateFor(ToolInstallation.java:206) 在 hudson.model.JDK.forNode(JDK.java:148) 在 org.jenkinsci.plugins.envinject.util.RunHelper.getJDKVariables(RunHelper.java:111) 在 org.jenkinsci.plugins.envinject.util.RunHelper.getBuildVariables(RunHelper.java:135) ... 8 更多

【问题讨论】:

【参考方案1】:

我以本地管理员身份登录服务器并尝试运行构建控制台中显示的 JDK 安装行:

E:\Jenkins_APA_8080\tools\hudson.model.JDK\Oracle_Java_8.0_191\jdk.exe /s ADDLOCAL="ToolsFeature" REBOOT=ReallySuppress INSTALLDIR=E:\Jenkins_APA_8080\tools\hudson.model.JDK\Oracle_Java_8.0_191 /L E:\Jenkins_APA_8080\tools\hudson.model.JDK

安装似乎已运行,这一次日志文件包含文本。我仔细检查了 Jenkins 文件夹的所有者和权限,它们归本地管理员而不是域管理员所有(这对于我们的 Jenkins 安装来说是正常的)。

但是,这台机器上 Jenkins 服务的登录凭据被设置为域管理员(不是本地管理员)。

更改 Jenkins 服务登录凭据解决了该问题。即使这个节点已经运行了几年没有问题,它的凭据也不正确。

【讨论】:

以上是关于詹金斯“无法安装 JDK”退出代码=-1的主要内容,如果未能解决你的问题,请参考以下文章

詹金斯在 linux 中无法识别我的 java

无法安装“cordova-plugin-whitelist”:错误:cmd:命令失败,退出代码为 1

Npm 安装期间“无法读取未定义的属性‘匹配’”

Mocha SonarQube 无法识别 Node.JS 代码

詹金斯 - /usr/bin/env: 节点:没有这样的文件或目录

詹金斯错误的卷权限