Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有指定路径的Java JDK静默安装_Java_Windows_Installation_Chef Infra_Silent - Fatal编程技术网

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

具有指定路径的Java JDK静默安装,java,windows,installation,chef-infra,silent,Java,Windows,Installation,Chef Infra,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"

我想以静默模式(事实上,使用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/path是现有目录

此外,我还发现了这个网站: 您可以在其中找到JDK的指定参数

我想将Chef resource windows软件包用于此安装

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

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


规格:

  • 厨师长12.4.1
  • 微软视窗7
  • 我要安装的JDK版本:6u357u798u45


谢谢您的帮助。

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

而不是使用类似于:

options     "/s INSTALLDIR=#{node['path']['jdk']}"
我不得不用这样的东西:

options     "/v\"/qn INSTALLDIR=\\\"#{node['path']['JDK1.7'].gsub('/','\\')}\\\"\""
这种方法肯定可以jdk67。以下是那些想知道如何做到这一点的人的完整示例:

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 8而言,此参数工作正常:

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

谢谢你的努力

您是否尝试过使用
C:\Java
而不是
C:/Java
?正斜杠在Windows路径中不是严格合法的,有时也不起作用。你考虑过使用社区食谱吗?据报道,它支持windows:@Harry Johnston,是的,我在path中尝试了两种斜杠方式,但都没有成功。@Mark O'Connor,我明天会研究你的解决方案,非常感谢。