java - 使用自动安装 JDK 在 Windows 7 上安装和配置 Jenkins

标签 java windows-7 jenkins java-7

我正在浏览 jenkins-the-definitive-guide .我已经使用 Windows 安装程序在 Windows 7 64 位上安装了 Jenkins。我已经配置了一个构建并设置 Jenkins 以在第一个构建时自动安装 JDK 7u3。当构建开始时,我在控制台日志中看到了这一点:

Started by user anonymous
Building in workspace C:\Program Files (x86)\Jenkins\workspace\gameoflife-default
Installing C:\Program Files (x86)\Jenkins\tools\JDK_7u3\jdk.exe 
[JDK_7u3] $ "C:\Program Files (x86)\Jenkins\tools\JDK_7u3\jdk.exe" /s /v /qn /L '\"C:\Program Files (x86)\Jenkins\tools\JDK_7u3\jdk.exe.install.log\"' REBOOT=ReallySuppress 'INSTALLDIR=\"C:\Program Files (x86)\Jenkins\tools\JDK_7u3\"'

它永远不会超越这个。

我试过: - 确保 exe 未被阻止 - 确保服务帐户具有管理员权限 - 尝试安装其他 JDK。

有什么想法吗?

最佳答案

JDK7的JDK自动安装出错,好像是:
https://issues.jenkins-ci.org/browse/JENKINS-5408

如果您尝试在命令行上运行该命令,您会看到 msiexec 对话框,这意味着参数不正确。由于我也有这个问题,所以我去看了 Jenkins 实际通过的内容。它确实(在我们的例子中):

c:\jenkins\tools\JDK\jdk-1.7.0_06\jdk.exe /s /v /qn /L \"c:\jenkins\tools\JDK\jdk-1.7.0_06\jdk.exe.install.log\" REBOOT=ReallySuppress INSTALLDIR=\"c:\jenkins\tools\JDK\jdk-1.7.0_06\"

转义引号是旧式 msiexec 安装的遗留物,其中 /v 之后的所有内容都必须用单引号引起来,因为它们都被传递到别的东西。单引号转义已被删除,但实际语法也不再正确(安装程序已更改,选项也已更改)。问题是在 INSTALLDIR 变量中进行的引号转义。如果您删除它,它将进行某种安装(您可能仍然有一个 msiexec 进程挂起)。示例:

c:\jenkins\tools\JDK\jdk-1.7.0_06\jdk.exe /s /L \"c:\jenkins\tools\JDK\jdk-1.7.0_06\jdk.exe.install.log\" REBOOT=ReallySuppress INSTALLDIR=\"c:\jenkins\tools\JDK\jdk-1.7.0_06\"

您可以更进一步,使用 /norestart 而不是设置 reboot 属性,具体取决于是否遵守它。

我提出的所有这些建议仍然没有解决实际问题,即“如何正确地自动安装 JDK7”。如果您遇到这个问题,我不知道您是否可以手动完成安装,然后在主配置中关闭自动安装。对我来说,清理缓存文件似乎没有帮助。

关于java - 使用自动安装 JDK 在 Windows 7 上安装和配置 Jenkins,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10695587/

相关文章:

java - 如何获取调整后的图像的新高度和宽度?

c# - 在表单最小化时在任务栏中显示进度条

c++ - 是否有 API 可以将 'touch' 输入映射到不同的监视器?

jenkins - 无法构建openjdk :8-jdk image directly

java - Android JavaCV 困境,创建 IplImage 时在方法 'draw' 内部抛出 NoClassDefFoundError

java - Zx 中的数的倒数

Java 线程在循环中执行余数运算会阻塞所有其他线程

windows-7 - 程序文件和程序数据之间的区别?

jenkins - 在 Jenkins slave 上运行的 Kubernetes POD 正在重新启动,没有其他事情发生

windows - 与远程 cmd 命令持续集成的解决方案?