具有指定路径的Java JDK静默安装

时间:2015-07-31 15:12:52

标签: java windows install chef silent

我想以静默模式(事实上,使用Chef)以指定版本安装JDK。

我的问题是,当我添加INSTALLDIR参数时,Java JDK安装失败。没有它,JDK将安装在默认目录( C:/ Program Files / Java / C:/ Program Files(x86)/ Java / )中。

我正在运行命令

jdk-7u79-windows-i586.exe /s INSTALLDIR="C:/java"

并尝试了

jdk-7u79-windows-i586.exe /s INSTALLDIR:"C:/java"

是什么让Java安装显示弹出窗口,其中包含我可以在MSI安装程序中使用的参数。

C:/ java / 路径是现有目录。

另外,我找到了这个网站: https://docs.oracle.com/javase/7/docs/webnotes/install/windows/jdk-installation-windows.html 您可以在其中找到JDK的指定参数。

我想使用Chef resource windows-package进行此安装

windows_package node['name']['JDK1.8'] do
    source                  node['source']['JDK1.8']
    installer_type          :custom
    action                  :install
    options                 '/s INSTALLDIR=C:/java2'
end

输出是什么

Mixlib::ShellOut::ShellCommandFailed
------------------------------------
Expected process to exit with [0, 42, 127], but received '1603'
---- Begin output of start "" /wait "D:\install\jdk-7u79-windows-i586.exe" /s INSTALLDIR=C:/java & exit %%ERRORLEVEL%% ----
STDOUT: 
STDERR: 
---- End output of start "" /wait "D:\install\jdk-7u79-windows-i586.exe" /s INSTALLDIR=C:/java & exit %%ERRORLEVEL%% ----
Ran start "" /wait "D:\install\jdk-7u79-windows-i586.exe" /s INSTALLDIR=C:/java & exit %%ERRORLEVEL%% returned 1603

我应该添加不想安装JRE - 我的目标是安装JDK。

是否有任何简单的方法可以在静默模式下为这些安装程序设置安装路径

规格:

  • Chef 12.4.1
  • Microsoft Windows 7
  • JDK的版本我想安装: 6u35 7u79 8u45

感谢您的帮助,谢谢。

1 个答案:

答案 0 :(得分:2)

好的,我找到了解决这个问题的方法。

而不是使用类似的东西:

options     "/s INSTALLDIR=#{node['path']['jdk']}"

我不得不使用这样的东西:

options     "/v\"/qn INSTALLDIR=\\\"#{node['path']['JDK1.7'].gsub('/','\\')}\\\"\""

这种方式肯定适用于 JDK 6 7 。以下是那些想知道如何做的人的完整示例:

windows_package node['name']['JDK1.7']  do
    source                  node['source']['JDK1.7']
    action                  :install
    installer_type          :custom
    options                 "/v\"/qn INSTALLDIR=\\\"#{node['path']['JDK1.7'].gsub('/','\\')}\\\"\""
end

JDK 8虽然存在问题 - 使用此行会导致JDK的安装损坏:

JDK installation fail

JDK 8 正常运行此参数:

options     "/s INSTALLDIR=\"#{node['path']['JDK1.8'].gsub('/','\\')}\""

感谢您的所有努力!