Warum gibt java -version eine andere Version als die in JAVA_HOME definierte zurück?

18

Mein JAVA_HOME ist auf C:\bea\jdk150_10\bin(Java 1.5) eingestellt. Beim Laufen java -versionerhalte ich jedoch Folgendes:

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)

Wie kann ich die 1.5 Version benutzen?

Jeune
quelle

Antworten:

14

Lauf

where java

an Ihrer Eingabeaufforderung.

Auf meinem System wurde etwas ganz Unerwartetes gedruckt:

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

Überprüfen, ob wirklich Java vorhanden ist:

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)

Eine Lösung besteht darin, sicherzustellen, dass sich Ihr bevorzugtes Java zuvor im PATH befindet C:\Windows\System32.

Ich habe auch versucht, in der Java-Systemsteuerung nachzuschauen, ob sie die Version verwaltet. C:\Windows\System32Ich konnte die Einstellungen jedoch nur anzeigen, nicht jedoch bearbeiten. Vielleicht funktioniert es bei dir?

Mikel
quelle
8

Ändern Sie die PATHVariable nicht JAVA_HOME.

Weitere Informationen zum Festlegen oder Ändern Ihrer PATH-Variablen finden Sie in der Java-Dokumentation .

  1. Start -> Systemsteuerung -> System -> Erweitert

  2. Klicken Sie unter Systemvariablen auf Umgebungsvariablen, suchen Sie PATHund klicken Sie darauf.

  3. Ändern Sie in den Bearbeitungsfenstern, PATHindem Sie die Position der Klasse zum Wert für hinzufügen PATH. Wenn Sie nicht über das Element verfügen PATH, können Sie eine neue Variable hinzufügen und PATHals Namen und als Wert die Position der Klasse hinzufügen .

  4. Schließe das Fenster.

  5. Öffnen Sie das Eingabeaufforderungsfenster erneut und führen Sie Ihren Java-Code aus.

John T
quelle
Ich sehe auch keine Verweise auf jdk 6 in der PATH-Variablen. Nur Java 5 X)
Jeune
Es ist ein Beispiel, das Verfahren ist immer noch das gleiche.
John T
4

Nicht alle Anwendungen verwenden JAVA_HOME, um die JDK-Version zu erhalten. Wie bereits gesagt, verwenden einige von ihnen die %SystemRoot%\System32\java.exe. Sie können tun, um %SystemRoot%\java.exe -versionzu sehen, welche Version diese ist.

Was ich zu den anderen Antworten hinzufügen muss, ist, dass, wenn Sie mit Maven bauen, M2_HOME\binauch vorher %SystemRoot%in der Reihenfolge sein muss, dass Maven die richtige JAVA_HOMEVersion verwendet.

Mihai Rus
quelle
1

JAVA_HOME sollte nicht auf den Papierkorb zeigen!

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

Stellen Sie außerdem sicher, dass der Pfad zu JAVA_HOME korrekt ist! Wenn ein Tippfehler vorliegt und sich C: \ Windows \ System32 \ in Ihrem Pfad befindet, wird diese java.exe anstelle der von Ihnen angegebenen ausgeführt.

Schlechtes Karma
quelle
0

Für mich bei Win 10 zeigte javac -version Java7 und Java -version Java8. Wenn "where java" auf der Eingabeaufforderung angegeben wurde, wurde Java an drei Stellen angezeigt. Ich musste Java aus C: \ Windows \ System32 entfernen, den Eintrag "C: \ ProgramFile \ Oracle \ Java \ javapath" und "C: \ ProgramData \ Oracle \ Java" aus der Pfadvariablen entfernen und nur den Eintrag "Jdk7" in der Pfadvariablen behalten arbeitete nach zweistündigem Kampf.

Sneha Rathod
quelle
0

Wechseln Sie zu den erweiterten Einstellungen für Umgebungsvariablen und bearbeiten Sie die Pfadvariable. Welche Java-Version Sie auch immer haben möchten, verschieben Sie diesen Versionspfad einfach über alle anderen Umgebungsvariablen anderer Java-Versionen.

Hier im Bild wird die Umgebungsvariable java_home nach oben verschoben als die Oracle Java-Umgebung

Nikita Dharurkar
quelle
-1

Versuche dies:

@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
quelle
-1

Ich hatte das gleiche Problem. Später stellte ich fest, dass der Schuldige Java 8 war. Früher habe ich Java 8 installiert, aber jetzt gibt es keinen Ordner für Java 8 und mein JAVA_HOME ist auf jre7 eingestellt, aber ich hatte immer noch mit dem obigen Problem zu kämpfen.

Lösung

Ich habe Javapath aus C: \ ProgramData \ Oracle \ Java gelöscht . Jetzt funktioniert mein System einwandfrei. Es löste auch mein Eclipse-Startproblem .

Sudip7
quelle
-2

Ich hatte das gleiche Problem. Dadurch habe ich das Problem behoben.

Unter Windows 8 oder 10 müssen Sie "C: \ ProgramFile \ Oracle \ Java \ javapath" aus dem Pfad in der Umgebungsvariablen entfernen.

Dies kann das Problem beheben.

Isuru Sandamal
quelle
2
Dies wurde bereits vor 2 Jahren vorgeschlagen
Ramhound