Pourquoi java -version renvoie une version différente de celle définie dans JAVA_HOME?

18

Mon JAVA_HOME est défini sur C:\bea\jdk150_10\bin(Java 1.5). Cependant, lorsque je cours, java -versionj'obtiens ce qui suit:

java version "1.6.0_22"
Java(TM) SE Runtime Environment (build 1.6.0_22-b04)
Java HotSpot(TM) Client VM (build 17.1-b03, mixed mode, sharing)

Comment utiliser la version 1.5?

Jeune
la source

Réponses:

14

Courir

where java

à votre invite de commande.

Sur mon système, il a imprimé quelque chose d'assez inattendu:

C:\Users\Mikel>where java
C:\Windows\System32\java.exe

Vérifier qu'il y a vraiment un Java là-bas:

C:\Users\Mikel>c:\windows\system32\java.exe -version
java version "1.6.0_22"
Java(TM) SE Runtime Environment (build 1.6.0_22-b04)
Java HotSpot(TM) Client VM (build 17.1-b03, mixed mode, sharing)

Donc, une solution consiste à s'assurer que votre Java préféré est dans le PATH avant C:\Windows\System32.

J'ai également essayé de regarder dans le panneau de configuration Java pour voir s'il gère la version C:\Windows\System32, mais je ne pouvais que visualiser les paramètres, pas les modifier. Peut-être que cela fonctionne pour vous?

Mikel
la source
8

Modifiez la PATHvariable, non JAVA_HOME.

Voir la documentation Java sur la définition ou la modification de votre variable PATH .

  1. Démarrer -> Panneau de configuration -> Système -> Avancé

  2. Cliquez sur Variables d'environnement, sous Variables système, recherchez PATHet cliquez dessus.

  3. Dans les fenêtres d'édition, modifiez PATHen ajoutant l'emplacement de la classe à la valeur de PATH. Si vous ne disposez pas de l'élément PATH, vous pouvez choisir d'ajouter une nouvelle variable et d'ajouter PATHcomme nom et l'emplacement de la classe comme valeur.

  4. Ferme la fenêtre.

  5. Rouvrez la fenêtre d'invite de commandes et exécutez votre code Java.

John T
la source
Je ne vois aucune référence à jdk 6 sur la variable PATH non plus. Uniquement Java 5 X)
Jeune
C'est un exemple, la procédure est toujours la même ..
John T
4

Toutes les applications ne sont pas utilisées JAVA_HOMEpour obtenir la version JDK. Comme dit précédemment, certains d'entre eux utilisent le %SystemRoot%\System32\java.exe. Vous pouvez faire %SystemRoot%\java.exe -versionpour voir quelle est cette version.

Ce que je dois ajouter aux autres réponses, c'est que si vous construisez avec Maven, vous devez M2_HOME\binégalement être avant %SystemRoot%dans l'ordre pour que Maven utilise la bonne JAVA_HOMEversion.

Mihai Rus
la source
1

JAVA_HOME ne devrait pas pointer vers le bac!

SET "JAVA_HOME = C: \ bea \ jdk150_10" SET "PATH =% JAVA_HOME% / bin;% PATH%"

Assurez-vous également que le chemin d'accès à JAVA_HOME est correct! S'il y a une faute de frappe et que C: \ Windows \ System32 \ se trouve dans votre chemin, alors java.exe sera exécuté à la place de celui que vous avez spécifié.

Mauvais karma
la source
0

Pour moi sur win 10, javac -version a montré java7 et java -version a montré java8.Faire "où java" sur l'invite de commande a montré java à trois endroits. J'ai dû supprimer Java de C: \ Windows \ System32, supprimer l'entrée de "C: \ ProgramFile \ Oracle \ Java \ javapath" et "C: \ ProgramData \ Oracle \ Java" de la variable de chemin, conserver uniquement l'entrée Jdk7 dans la variable de chemin travaillé après deux heures de lutte.

Sneha Rathod
la source
0

Accédez aux paramètres avancés des variables d'environnement et modifiez la variable de chemin. quelle que soit la version de java que vous souhaitez, il vous suffit de remonter ce chemin de versions au-dessus de toutes les autres variables d'environnement d'autres versions de java.

ici dans l'image la variable d'environnement java_home est déplacée vers le haut par rapport à l'environnement Oracle Java

nikita dharurkar
la source
-1

Essaye ça:

@echo off
DOSKEY WHICH=@for %%E in (%PATHEXT%) do @for %%I in ($*%%E) do @if NOT "%%~$PATH:I"=="" echo %%~$PATH:I
SET "JAVA_HOME=C:\Java\jdk1.6"
SET "PATH=%JAVA_HOME%\bin;%PATH%"
where.exe java
WHICH java
pause
djangofan
la source
-1

J'étais confronté au même problème. Plus tard, j'ai trouvé que le coupable était Java 8. Plus tôt, j'ai installé java 8, mais maintenant il n'y a pas de dossier pour java 8 et mon JAVA_HOME défini sur jre7, mais j'étais toujours confronté au problème ci-dessus.

Solution

J'ai supprimé javapath présent dans C: \ ProgramData \ Oracle \ Java . Maintenant, mon système fonctionne correctement. Il a également résolu mon problème de démarrage d'Eclipse .

Sudip7
la source
-2

J'ai eu le même problème. Ce faisant, j'ai résolu le problème.

Sous Windows 8 ou 10, vous devez supprimer "C: \ ProgramFile \ Oracle \ Java \ javapath" du chemin dans la variable d'environnement.

Cela peut résoudre le problème.

Isuru Sandamal
la source
2
Cela a déjà été suggéré il y a 2 ans
Ramhound