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:
J'ai regardé ces sources:
mais ils semblent manquer et très déroutant quant à ce qui me donnera le résultat souhaité.
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
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
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 .
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