Es wird eine falsche Java-Version gemeldet

17

Ich verwende Windows 7 Professional x64 und habe die folgenden Java-Versionen installiert:

x64

  • C: \ Programme \ Java
    • jdk1.6.0_24
    • jdk1.7.0_04
    • jdk1.7.0_07
    • jre6
    • jre7

x86

  • C: \ Programme (x86) \ Java
    • jre1.6.0_07
    • jre6
    • jre7

In meinen Umgebungsvariablen habe ich mein PATHContaining C:\Program Files\Java\jdk1.6.0_24\binund JAVA_HOMEsetze aufC:\Program Files\Java\jdk1.6.0_24\bin

Allerdings laufen java -versionBerichte

java version "1.7.0_07"
Java(TM) SE Runtime Environment (build 1.7.0_07-b10)
Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode)

Wie ist dies der Fall, wenn in meinen Umgebungsvariablen kein Verweis auf diese Java-Version vorhanden ist?

Jede Hilfe zu diesem Thema wäre großartig, da ich versuche, Apache ANT mit Java 1.6 auszuführen .

Malachi
quelle

Antworten:

27

Sie haben wahrscheinlich java.exe in einen der Systempfade kopiert (AFAIK ist das Standardverhalten des Java-Installationsprogramms). Um zu überprüfen, was beim Ausführen von 'java -version' tatsächlich ausgeführt wird, führen Sie Folgendes aus der Befehlszeile aus:
for %I in (java.exe) do @echo %~$PATH:Iund es wird Ihnen angezeigt, wo es sich befindet.

wmz
quelle
1
Wow - das ist so hilfreich! Aus irgendeinem Grund java.exeist in System32. Ich werde es den Pfad hinauf bewegen, wie erwähnt.
Malachi
1
Das gleiche Problem gab es hier java.exebei system32ANDProgramData\Oracle\javapath
Kevin Labécot
Wenn Sie sich fragen, was Sie als Nächstes tun sollen, können Sie das exes umbenennen . I umbenannt java.exe, javaw.exeund javaws.exezu java-foobar.exe, javaw-foobar.exeund javaws-foobar.exejeweils.
Javatarz
Das erhöht die Anzahl der Stellen, die ich überprüfen muss, auf 4: PATH, JAVA_HOME, Control Panels und jetzt auch System32 ... Wow. Eines Tages wird die Registrierung 5. werden. Und Ihnen danke ich, Sir.
Jaroslav Záruba
2

Die PATH-Ordner werden in der Reihenfolge überprüft, in der sie angezeigt werden. Versuchen Sie, den Java-Pfad nach vorne zu verschieben. Wenn dies das Problem behebt, haben Sie eine andere Version auf Ihrem Weg.

Chris Nava
quelle
2

Bei der Installation einer öffentlichen JRE (vom Java-Plugin verwendet) wird auch eine java.exe-Datei in C: \ WINNT \ system32 (IIRC) erstellt. Wahrscheinlich wird dieser Java-Befehl ausgeführt, da C: \ WINNT \ system32 vor dem Verzeichnis JDK / bin in Ihrem PATH steht.

Stellen Sie das Verzeichnis JDK / bin an den Anfang des PFADS

Pyuri Sahu
quelle
0

Dadurch wird die korrekte Java-Version gemeldet, und Sie werden auch darauf hingewiesen, wo das Problem liegt:

@ECHO off
ECHO ---------------
SET "JAVA_HOME=C:\Path to wherever\JDKwhatever"
SET "PATH=%JAVA_HOME%\bin;%PATH%"
java -version
ECHO ---------------
pause
Djangofan
quelle
0

Ich schlage vor, dass Sie alle JDKs und JREs deinstallieren. Anschließend installieren Sie das neueste JDK und aktualisieren Ihren Klassenpfad, JAVA_HOME und Ihren Pfad. Das hat bei mir funktioniert.

Abderrahmen
quelle
-1

Wie ich kürzlich herausgefunden habe, stellen Sie sicher, dass Sie JAVA_HOMEim Abschnitt "Systemvariablen" und nicht im Abschnitt "Benutzervariablen" definieren.

Ich hatte %JAVA_HOME%\binam Anfang, PATHaber es hat nicht funktioniert - das Hinzufügen JAVA_HOMEzum System hat das Problem behoben.

Paul
quelle