web-dev-qa-db-fra.com

Installation de JDK 8 et JRE 8 en mode silencieux sur une machine Windows via une ligne de commande

Nous voulons mettre à jour l'environnement JDK sur plusieurs machines, toutes exécutées sous Windows, mais avec des versions différentes (XP ou 7).

À cette fin, je crée maintenant un script qui exécutera automatiquement le programme d'installation correct (32/64 bits) . J'ai essayé d'exécuter le programme d'installation avec la commande suivante:

jdk-8u25-windows-x64.exe /s ADDLOCAL="ToolsFeature,SourceFeature,PublicjreFeature"

Cela fonctionne très bien sur une machine sur laquelle JDK/JRE 8 n’est pas installé. Cependant, je rencontre quelques problèmes:

  • Si JDK/JRE 8 est déjà installé, le programme d'installation désinstalle JDK et JRE au lieu de ne rien faire (ou de ne pas réinstaller).
  • Si un redémarrage est requis, il est exécuté automatiquement de force et doit être évité, car d'autres actions doivent être exécutées dans le script une fois l'installation terminée.
  • Il n'y a pas de fichier journal/mode VERBOSE indiquant ce que fait réellement le programme d'installation

J'ai regardé ces sources:

mais ils semblent manquer et très déroutant quant à ce qui me donnera le résultat souhaité.

11
dagandlerx

Je voudrais aborder JDK et JRE séparément:

Le JDK ne dépend pas des entrées de registre ni de tout ce que le programme d'installation exe fait. Donc, installez le JDK - sans JRE Public - uniquement sur la machine one en utilisant

jdk-8u25-windows-x64.exe /s ADDLOCAL="ToolsFeature,SourceFeature"

Ensuite, vous pouvez simplement compresser l’installation résultante, la copier et la décompresser sur d’autres machines du même type de système d’exploitation. 

Le programme d’installation JRE (téléchargement séparé à partir d’Oracle) peut être exécuté avec les options et le fichier de configuration décrits dans la documentation suivante: http://docs.Oracle.com/javase/8/docs/technotes/guides/install /windows_installer_options.html

En supposant que la configuration se trouve dans le même répertoire que le programme d'installation, l'option INSTALLCFG="%cd%\jre-install-options.cfg" peut être utilisée. Sinon, un chemin complet est requis pour le fichier de configuration (INSTALLCFG = "c:\chemin\to\jre-install-options.cfg"). Donc, quelque chose comme ceci (avec le fichier journal et en supposant que le fichier de configuration se trouve dans le même répertoire que le fichier exe):

jre-8-windows-i586.exe INSTALLCFG="%cd%\jre-install-options.cfg" /s /L C:\TMP\jre-install.log

Il semble que le fichier jre-install-options.txt suivant puisse fonctionner pour vous:

INSTALL_SILENT=Enable
REBOOT=Disable
STATIC=Enable

Les options du fichier de configuration sont répertoriées ici: http://docs.Oracle.com/javase/8/docs/technotes/guides/install/config.html

La signification de la dernière ligne est expliquée ici: http://docs.Oracle.com/javase/8/docs/technotes/guides/install/windows_installer_options.html#static_installation

9
odoepner

J'étais confronté à un problème similaire avec l'option/s. J'ai trouvé un bogue JDK https://bugs.openjdk.Java.net/browse/JDK-8033364 . Je semble qu'ils ont supprimé le soutien à l'aide ou l'art. Essayez/qn cela a fonctionné pour moi 

jdk-8u92-windows-x64.exe/qn

1
Jitendra

Pour l'installation silencieuse JRE: 

start /wait msiexec /i "%~ Java8.40x64.msi " JU=0 JAVAUPDATE=0 AUTOUPDATECHECK=0 RebootYesNo=No WEB_Java=1 /q

Vous pouvez voir le post complet ici .

0
Klodi

Il semble que les options de ligne de commande prises en charge soient constamment modifiées. Pour la dernière mise à jour 131, je devais abandonner toutes les options de style msiexec car aucune d’entre elles ne fonctionnait. J'ai utilisé la documentation de la version Java que j'ai téléchargée pour construire des commutateurs dans le programme d'installation. Comme indiqué dans les réponses ci-dessus, les options du fichier de configuration peuvent être transmises au programme d'installation sur la ligne de commande. La dernière commande que j'ai utilisée dans Packer pour installer Java sur une AMI de serveur Win2016 était la suivante:

Start-Process 'C:\Windows\Temp\jre-8u131-windows-x64.exe' `
  -ArgumentList 'INSTALL_SILENT=Enable REBOOT=Disable SPONSORS=Disable' `
  -Wait -PassThru

Cette commande ajoute également Java au chemin d'accès système par défaut, mais pas dans celui qu'elle installe. Ouvrez un nouveau shell PowerShell et il sera dans le chemin de ce shell (inspecter avec $env.path)

Sources de vérité:

http://docs.Oracle.com/javase/8/docs/technotes/guides/install/windows_installer_options.htmlhttp://docs.Oracle.com/javase/8/docs/ technotes/guides/install/config.html # table_config_file_options

0
Todd Lyons