Dlaczego wersja java zwraca inną wersję niż ta zdefiniowana w JAVA_HOME?

18

Mój JAVA_HOME jest ustawiony na C:\bea\jdk150_10\bin(Java 1.5). Jednak po uruchomieniu java -versionotrzymuję następujące informacje:

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)

Jak mogę korzystać z wersji 1.5?

Jeune
źródło

Odpowiedzi:

14

Biegać

where java

w wierszu polecenia.

W moim systemie wydrukowano coś zupełnie nieoczekiwanego:

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

Sprawdzanie, czy naprawdę jest tam Java:

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)

Tak więc jednym z rozwiązań jest upewnienie się, że preferowana Java jest w PATH wcześniej C:\Windows\System32.

Próbowałem także zajrzeć do panelu sterowania Java, aby sprawdzić, czy obsługuje on wersję C:\Windows\System32, ale mogłem tylko wyświetlać ustawienia, a nie edytować je. Może to ci odpowiada?

Mikel
źródło
8

Zmodyfikuj PATHzmienną, a nie JAVA_HOME.

Zobacz dokumentację Java na temat ustawiania lub zmiany zmiennej PATH .

  1. Start -> Panel sterowania -> System -> Zaawansowane

  2. Kliknij Zmienne środowiskowe, w obszarze Zmienne systemowe, znajdź PATHi kliknij je.

  3. W oknie Edycja zmodyfikuj PATH, dodając lokalizację klasy do wartości dla PATH. Jeśli nie masz pozycji PATH, możesz dodać nową zmienną i dodać PATHjako nazwę i lokalizację klasy jako wartość.

  4. Zamknij okno.

  5. Otwórz ponownie okno wiersza polecenia i uruchom kod Java.

John T.
źródło
Nie widzę też żadnych odniesień do jdk 6 w zmiennej PATH. Tylko Java 5 X)
Jeune,
To przykład, procedura jest wciąż taka sama ...
John T
4

Nie wszystkie aplikacje używają JAVA_HOMEdo uzyskania wersji JDK. Jak powiedziano wcześniej, niektórzy z nich używają %SystemRoot%\System32\java.exe. Możesz zrobić, %SystemRoot%\java.exe -versionaby zobaczyć, która to wersja.

Muszę dodać do innych odpowiedzi, że jeśli budujesz z Maven, to M2_HOME\binmusi być wcześniej %SystemRoot%, aby Maven używał poprawnej JAVA_HOMEwersji.

Mihai Rus
źródło
1

JAVA_HOME nie powinien wskazywać na bin!

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

Upewnij się także, że ścieżka do JAVA_HOME jest poprawna! Jeśli jest literówka, a C: \ Windows \ System32 \ znajduje się w ścieżce, to java.exe zostanie uruchomiony zamiast określonego.

Zła karma
źródło
0

Dla mnie w systemie Windows 10 wersja javac pokazała java7, a wersja java pokazała java8. Wykonanie „where java” w wierszu polecenia pokazało java w trzech lokalizacjach. Musiałem usunąć Javę z C: \ Windows \ System32, usunąć wpis „C: \ ProgramFile \ Oracle \ Java \ javapath” i „C: \ ProgramData \ Oracle \ Java” ze zmiennej ścieżki, zachowaj tylko wpis Jdk7 w zmiennej path pracował po dwóch godzinach walki.

Sneha Rathod
źródło
0

Przejdź do zaawansowanych ustawień zmiennych środowiskowych i edytuj zmienną ścieżkową. którąkolwiek wersję java chcesz po prostu przejść w górę tej ścieżki wersji ponad wszystkie inne zmienne środowiskowe innych wersji java.

tutaj na obrazie zmienna środowiskowa java_home została przeniesiona w górę niż środowisko Java w Oracle

nikita dharurkar
źródło
-1

Spróbuj tego:

@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
źródło
-1

Miałem do czynienia z tym samym problemem. Później okazało się, że przyczyną był Java 8. Wcześniej zainstalowałem java 8, ale teraz nie ma folderu dla java 8 i mój JAVA_HOME jest ustawiony na jre7, ale nadal mam do czynienia z powyższym problemem.

rozwiązanie

Usunąłem javapath obecny w C: \ ProgramData \ Oracle \ Java . Teraz mój system działa poprawnie. Rozwiązało to również mój problem z uruchomieniem zaćmienia .

Sudip7
źródło
-2

Miałem ten sam problem. W ten sposób rozwiązałem problem.

W systemie Windows 8 lub 10 musisz usunąć „C: \ ProgramFile \ Oracle \ Java \ javapath” ze ścieżki w zmiennej środowiskowej.

To może rozwiązać problem.

Isuru Sandamal
źródło
2
Zasugerowano to już 2 lata temu
Ramhound