【问题标题】:Java JDK silent installation with specified path指定路径的 Java JDK 静默安装
【发布时间】:2015-10-23 08:02:38
【问题描述】:

我想以静默模式(实际上是使用 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 资源 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。

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


规格:

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

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

【问题讨论】:

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

标签: java windows installation chef-infra silent


【解决方案1】:

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

而不是使用类似的东西:

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 8,这个参数可以正常工作:

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

感谢您的所有努力!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-25
    • 1970-01-01
    • 2013-02-23
    • 2013-03-01
    • 1970-01-01
    • 2012-08-06
    • 1970-01-01
    相关资源
    最近更新 更多