Installazione silenziosa Java JDK con percorso specificato


Voglio installare in modalità silenziosa (infatti, usando Chef) JDK nella versione specificata.

Il mio problema è che quando aggiungo il parametro INSTALLDIR, l'installazione di Java JDK fallisce. Senza di essa JDK verrà installato nella directory predefinita ( C:/Program File / Java/ o C:/Program File (x86) / Java / ).

Sto eseguendo il comando

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

E anche provato

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

Ciò che rende l'installazione di Java mostra la finestra pop-up con i parametri che posso usare in MSI installer.

C:/java / il percorso è una directory esistente.

Inoltre, ho trovato questo sito: https://docs.oracle.com/javase/7/docs/webnotes/install/windows/jdk-installation-windows.html dove puoi trovare i parametri specificati per JDK.

Voglio usare Chef resource windows-package per questa installazione

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

Cosa rende l'output

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

Dovrei aggiungere I non voglio installare JRE - il mio obiettivo è installare JDK.

C'è qualche modo semplice per impostare il percorso di installazione per questi programmi di installazione in modalità silenziosa?


Specifica:

  • Chef 12.4.1
  • Microsoft Windows 7
  • Versioni di JDK che vorrei installare: 6u35, 7u79 e 8u45.

Apprezzerò qualsiasi aiuto, grazie.

Author: deem, 2015-07-31

1 answers

Ok, ho trovato la soluzione per questo problema.

Invece di usare qualcosa come:

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

Ho dovuto usare qualcosa del genere:

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

In questo modo funziona sicuramente JDK 6 e 7. Ecco un esempio completo per coloro che si chiedono, come farlo:

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 ha però un problema: l'uso di questa riga rende l'installazione di JDK corrotta:

Installazione JDK non riuscita

Per JDK 8 ha funzionato bene questo parametro:

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

Grazie per tutti i tuoi sforzi!

 2
Author: deem, 2015-08-03 08:37:38