Comment définir l'installation/l'exécution Java par défaut (Windows)?


Je suis dans la situation où j'ai installé le JDK, mais je ne peux pas exécuter d'applets dans les navigateurs (je n'ai peut-être pas installé le JRE).

Cependant, lorsque j'installe le JRE, il clobbers mon JDK comme runtime par défaut. Cela casse à peu près tout (Eclipse, Ant) - car ils nécessitent une JVM de serveur.

Il n'y a pas de variable d'environnement JAVA_HOME ces jours - ci-il semble juste utiliser une certaine magie de registre (définir le chemin du système n'est d'aucune utilité non plus). Auparavant, je viens de désinstaller le JRE après l'avoir utilisé pour restaurer le JDK. Cette fois, je veux le réparer correctement.

Cela se manifeste également avec le jre autoupdater - il était une fois, j'avais une configuration de travail avec le JDK et le JRE, mais il a tout mis à jour et tout cassé.

Author: MarianD, 2009-02-16

6 answers

C'est un peu une douleur sur Windows. Voici ce que je fais.

Installez le dernier Sun JDK, par exemple6u11 , dans path likec:\install\jdk\sun\6u11, puis laissez le programme d'installation installer public JRE à la place par défaut (c:\program files\blah). Cela configurera votre JRE par défaut pour la majorité des choses.

Installez les anciens JDK si nécessaire, comme5u18 dans c:\install\jdk\sun\5u18, mais n'installez pas les JRE publics.

En développement, j'ai un petit fichier batch que j'utilise pour configurer une invite de commande pour chaque JDK version. Essentiellement, il suffit de définir JAVA_HOME=c:\jdk\sun\JDK_DESIRED puis de définir PATH=%JAVA_HOME%\bin;%PATH%. Cela mettra le JDK souhaité en premier dans le chemin et tous les outils secondaires comme Ant ou Maven peuvent utiliser la variable JAVA_HOME.

Le chemin est important car la plupart des installations JRE publiques placent un exécutable lié à c:\WINDOWS\System32\java.exe, qui généralement remplace la plupart des autres paramètres.

 39
Author: nbeyer, 2014-08-07 22:24:40

J'ai corrigé le comportement de mon raccourci de démarrage eclipse dans le dialogue propriétés

De

"E:\Program Files\eclipse\eclipse.exe"

À

"E:\Program Files\eclipse\eclipse.exe" -vm "E:\Program Files\Java\jdk1.6.0_30\bin"

Comme décrit dans la documentation Eclipse

C'est un patch uniquement, car cela dépend du raccourci pour corriger les choses...

L'alternative est de définir le paramètre en permanence dans le fichier d'initialisation eclipse.

 6
Author: Jörn Guy Süß, 2012-01-16 02:21:38

Je viens d'avoir ce problème (Java 1.8 vs Java 9 sur Windows 7) et mes conclusions sont:

Version Courte

La valeur par défaut semble être (à cause de l'entrée du chemin)

c:\ProgramData\Oracle\Java\javapath\java -version

Sélectionnez la version que vous voulez (test, utiliser l'onglet compléter dans cmd, je ne sais pas ce que ces chiffres représentent), j'avais 2 options, voir la version plus longue pour plus de détails

c:\ProgramData\Oracle\Java\javapath_target_[tab]

Supprimer la jonction / lien et le lien vers votre version (celle se terminant par 181743567 dans mon cas pour Java 8)

rmdir javapath
mklink /D javapath javapath_target_181743567

Version plus longue:

Réinstallez Java 1.8 après que Java 9 n'a pas fonctionné. La séquence d'installations était jdk1.8.0_74, jdk-9.0.4 et tenter de rendre Java 8 par défaut avec jdk1.8. 0_162...

Après l'installation de jdk1.8.0_162, j'ai toujours

java -version
java version "9.0.4"
Java(TM) SE Runtime Environment (build 9.0.4+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.4+11, mixed mode)

Ce que je vois dans path est

Path=...;C:\ProgramData\Oracle\Java\javapath;...

J'ai donc vérifié ce que c'est et j'ai trouvé que c'est une jonction (lien)

c:\ProgramData\Oracle\Java>dir
 Volume in drive C is OSDisk
 Volume Serial Number is DA2F-C2CC

 Directory of c:\ProgramData\Oracle\Java

2018-02-07  17:06    <DIR>          .
2018-02-07  17:06    <DIR>          ..
2018-02-08  17:08    <DIR>          .oracle_jre_usage
2017-08-22  11:04    <DIR>          installcache
2018-02-08  17:08    <DIR>          installcache_x64
2018-02-07  17:06    <JUNCTION>     javapath [C:\ProgramData\Oracle\Java\javapath_target_185258831]
2018-02-07  17:06    <DIR>          javapath_target_181743567
2018-02-07  17:06    <DIR>          javapath_target_185258831

Ces hachages ne sonnent pas une cloche, mais quand je vérifié

c:\ProgramData\Oracle\Java\javapath_target_181743567>.\java -version
java version "1.8.0_162"
Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)

c:\ProgramData\Oracle\Java\javapath_target_185258831>.\java -version
java version "9.0.4"
Java(TM) SE Runtime Environment (build 9.0.4+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.4+11, mixed mode)

Donc, pour rendre Java 8 à nouveau par défaut, j'ai dû supprimer le lien comme décrit ici

rmdir javapath

Et recréer avec Java je voulais

mklink /D javapath javapath_target_181743567

Testé:

c:\ProgramData\Oracle\Java>java -version
java version "1.8.0_162"
Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)

** mise à jour (Java 10) **

Avec Java 10, c'est similaire, seul javapath est dans c:\Program Fichiers (x86) \ Common Files \ Oracle \ Java \ ce qui est étrange car j'ai installé 64 bits À mon humble avis

.\java -version
java version "10.0.2" 2018-07-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.2+13)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.2+13, mixed mode)
 2
Author: Betlista, 2018-09-08 16:39:55

J'installe simplement toutes les versions de JDK dont j'ai besoin et la dernière installée devient par défaut, donc je réinstalle simplement celle que je veux être par défaut si nécessaire.

 1
Author: John Mikic, 2018-01-25 17:05:17

Après de nombreuses tentatives, j'ai trouvé l'approche de jonction plus pratique. Ceci est très similaire sur la façon dont ce problème est résolu sous linux.

Fondamentalement, il consiste à avoir un lien entre c:\tools\java\default et la version réelle de java que vous souhaitez utiliser par défaut dans votre système.


Comment le définir:

  1. Téléchargez junction et assurez-vous de le mettre sur votre CHEMIN variable d'environnement
  2. Définissez votre environnement de cette façon: - PATH pointant vers SEULEMENT à ce jre c:\tools\java\default\bin - JAVA_HOME pointant vers `c:\tools\java\default
  3. Stockez tous vos jre-s dans un dossier comme (si vous le faites dans votre dossier Program FIles, vous pouvez en rencontrer
    • C:\tools\Java\JRE_1.6
    • C:\tools\Java\JRE_1.7
    • C:\tools\Java\JRE_1.8
  4. Ouvrir une invite de commande et cd à C:\tools\Java\
  5. Exécuter junction default JRE_1.6

Cela créera unejonction (qui ressemble plus ou moins à un lien symbolique sous linux) entre C:\tools\java\default et C:\tools\java\JRE_1.6

De cette façon, vous aurez toujours votre java par défaut dans c:\tools\java\default.

Si vous devez ensuite changer votre java par défaut en version 1.8, il vous suffit d'exécuter

junction -d default
junction default JRE_1.8 

Ensuite, vous pouvez avoir des fichiers batch pour le faire sans invite de commande comme set_jdk8.bat set_jdk7.bat

Comme suggéré de @ Саеемаятіи

EDIT: À partir de Windows Vista, vous pouvez utiliser mklink /J default JRE_1.8

 0
Author: snovelli, 2016-03-24 11:19:43

J'ai plusieurs JDK (1.4, 1.5, 1.6) installés dans C:\Java avec leurs JREs. Ensuite, je laisse Sun mettre à jour le JRE public dans C:\Program Files\Java.
Dernièrement, il y a une amélioration, installation dans re6. Auparavant, il y avait un dossier différent par nouvelle version (1.5.0_4, 1.5.0_5, etc.), qui prenait beaucoup de place

 0
Author: PhiLho, 2018-09-07 12:02:49