Comment installer Java JDK en silence dans un répertoire spécifique sous Windows


Sur ma machine de développement, je dois toujours installer Java 6 et Java 7 et je dois installer chaque JDK dans les deux, la version 32 et 64 bits, à des fins de test. Depuis la fréquence des mises à jour Java semble devenir de plus en plus ridicule (deux fois par semaine maintenant?) chaque mise à jour m'oblige à désinstaller, puis à réinstaller 4 JDK. Donc, cela devient vraiment assez ennuyeux et je voudrais donc écrire tout ce processus.

Mon problème est que, par défaut, chaque JDK versions s'installe dans un chemin de répertoire contenant le numéro de mise à jour (par défaut: "C:\Program Fichiers \ Java \ jdk1. 6.0_\"). Pour m'épargner d'avoir à adapter des tonnes de scripts de construction, je retire toujours manuellement le "_ " du chemin d'installation et l'installe toujours dans le même "C:\Program Fichiers\Java\jdk1.6.0" ou "C:\Program Fichiers\Java \ jdk1.7. 0", resp., pour les versions 64 bits et dans C:\Program Fichiers (x86)\Java\jdk1.6.0" ou "C:\Program Fichiers (x86) \ Java \ jdk1. 7. 0", resp., pour les versions 32 bits.

Pendant que j'ai découvert, comment spécifier le répertoire d'installation pour un installateur JRE (c'est-à-dire le runtime Java):

<jre-installfile>.exe [/s] [INSTALLDIR=<drive>:\<JRE_install_path>] 
    [STATIC=1] [WEB_JAVA=0/1] [WEB_JAVA_SECURITY_LEVEL=VH/H/M/L]

Je n'ai pas encore trouvé de description similaire pour spécifier le répertoire d'installation du programme d'installation JDK.

Quelqu'un sait-il si et comment on peut spécifier le chemin d'installation pour le programme d'installation JDK, afin que l'on puisse diriger une installation JDK silencieuse dans un répertoire d'installation spécifique?

Author: Andrew Thompson, 2013-03-08

7 answers

J'ai pu installer avec succès les versions x64 et x86 de JDK 8 update 60, y compris un JRE public avec ces commandes:

Ici JDK 1.8.60 (x86) avec le code source va à C:\Java\x86\jdk1.8.0_60 et JRE à C:\Java\x86\jre1.8.0_60:

jdk-8u60-windows-i586.exe /s ADDLOCAL="ToolsFeature,SourceFeature,PublicjreFeature" INSTALLDIR=C:\Java\x86\jdk1.8.0_60 /INSTALLDIRPUBJRE=C:\Java\x86\jre1.8.0_60

De la même manière, JDK 1.8.60 (x64) avec le code source va à {[4] } et JRE à C:\Java\x64\jre1.8.0_60:

jdk-8u60-windows-x64.exe /s ADDLOCAL="ToolsFeature,SourceFeature,PublicjreFeature" INSTALLDIR=C:\Java\x64\jdk1.8.0_60 /INSTALLDIRPUBJRE=C:\Java\x64\jre1.8.0_60
Vous pouvez également utiliser les options d'installation JRE de Oracle
 12
Author: Vivit, 2016-10-20 18:43:47

Une approche pour éviter la réécriture de répertoires dans les scripts consiste à utiliser des liens symboliques (jonctions sur NTFS). Tout d'abord, téléchargez l'utilitaire de jonction de SysInternals ici: http://technet.microsoft.com/en-us/sysinternals/bb896768.aspx décompressez ensuite, copiez dans un répertoire sur le CHEMIN et exécutez une fois pour accepter la licence.

Ensuite, vous pouvez facilement créer des liens symboliques: junction "C:\Program Files\Java\jdk1.6.0" "C:\Program Files\Java\jdk1.6.0_37" junction "C:\Program Files (x86)\Java\jdk1.6.0" "C:\Program Files (x86)\Java\jdk1.6.0_37"

Pour supprimer un lien symbolique: junction -d "C:\Program Files\Java\jdk1.6.0"

Vous pouvez également utiliser mklink ( http://technet.microsoft.com/en-us/library/cc753194.aspx ) à la place (et del pour la suppression), mais je préfère la simplicité et la clarté de la jonction.

 2
Author: uk4sx, 2014-07-17 07:56:13

Je viens de trouver cet article lors de la recherche... il spécifie un paramètre pour INSTALLDIR.

Http://makeitfaster.wordpress.com/2011/03/25/java-jdk-silent-install-on-windows/

jdk-7u2-windows-i586.exe /s ADDLOCAL="ToolsFeature,SourceFeature" INSTALLDIR="%CD%\jdk7u2"

J'avais malheureusement déjà installé sur ma machine de développement, donc je n'ai pas pu tester...

 1
Author: Matt, 2013-04-26 18:23:05

Essayer: jdk-7u2-windows-i586.exe / s INSTALLDIR=\"C:\Program Fichiers \ JAVA \ JDK\"

 1
Author: user2503019, 2013-06-19 21:41:48

Je viens de découvrir une régression dans le programme d'installation JDK7 qui le fait ignorer INSTALLDIR. La dernière version correcte est la mise à jour 21.

J'ai déposé un rapport de bogue et je vous le ferai savoir une fois qu'Oracle aura répondu.

UPDATE: Il s'avère que cela a été causé par une installation JDK corrompue (incomplète). Une fois que j'ai désinstallé cette version (Ajouter/Supprimer des programmes), la nouvelle installation a très bien fonctionné.

 1
Author: Gili, 2013-09-16 22:38:33

C'est la façon qui fonctionne pour moi pour JDK_7u55. J'ai choisi d'avoir le JRE installé aussi:

Les Commandes PowerShell

$strJavaInstallExe=<Your JDK executable>
$strJavaInstallDir=<The directory you want the JDK and JRE to install to>

$cmdInstallJava=$strJavaInstallExe+' /passive /log "'+$strJavaInstallDir+'\install.log" ADDLOCAL="ToolsFeature,SourceFeature,PublicjreFeature" INSTALLDIR="'+$strJavaInstallDir+'" INSTALLDIRPUBJRE="'+$strJavaInstallDir+'"'

Invoke-Expression $cmdInstallJava

J'espère que cela aide!

 1
Author: Rodney Spencer, 2015-02-25 20:18:14

MODIFIER-moyen plus facile

Exécuter jdk-7u60-windows-x64.exe /passive /log install.log INSTALLDIR:c:\pippo

Fonctionne avec 7u45 et 7u60

ANCIENNE réponse

L'exe contient le programme d'installation msi. Extraire is (c'est sûr qu'il y a des méthodes plus élégantes, mais je ne connais que celle-ci)

  1. Exécutez l'exe manuellement-vous ne devez le faire que la première fois, pour le convertir en msi
  2. Prenez le msi (et tous les autres.fichier cab) de C:\Users\AppData\LocalLow\Sun\Java\jdx.x.y\jdk.x. y. z. msi
  3. exécuter msiexec /i jdkx.y.z.msi /passive INSTALLDIR:c:\pippo
 0
Author: Tommaso, 2014-07-02 09:07:25