使用指定path的Java JDK无提示安装

我想以指定的版本以静默模式安装(实际上,使用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安装显示popup式窗口与我可以在MSI安装程序中使用的参数。

C:/ java / path是现有的目录。

另外,我发现这个网站: https : //docs.oracle.com/javase/7/docs/webnotes/install/windows/jdk-installation-windows.html你可以findJDK的指定参数。

我想使用Chef资源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。

有没有简单的方法来设置这些安装程序在安静模式下的安装path?


规范:

  • 厨师12.4.1
  • 微软Windows 7
  • JDK的版本我想安装: 6u35,7u798u45

我将不胜感激任何帮助,谢谢。

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

而不是使用像这样的东西:

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

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

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

这种方式肯定JDK 67 。 对于那些想知道如何做的人来说,这是一个完整的例子:

 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安装失败

对于JDK 8工作正常这个参数:

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

感谢您的所有努力!