Почему java -version возвращает версию, отличную от версии, определенной в JAVA_HOME?


18

Мой JAVA_HOME установлен на C:\bea\jdk150_10\bin(Java 1.5). Однако, когда я бегу, java -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)

Как я могу использовать версию 1.5?

Ответы:



14

Бегать

where java

в вашей командной строке.

В моей системе это напечатало что-то совершенно неожиданное:

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

Проверка там действительно есть 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)

Поэтому одним из решений является обеспечение того, чтобы предпочитаемая вами Java ранее находилась в PATH C:\Windows\System32.

Я также попытался заглянуть в панель управления Java, чтобы увидеть, управляет ли она версией C:\Windows\System32, но я мог только просматривать настройки, а не редактировать их. Может у тебя это работает?


8

Изменить PATHпеременную нет JAVA_HOME.

См. Документацию Java по настройке или изменению переменной PATH .

  1. Пуск -> Панель управления -> Система -> Дополнительно

  2. Нажмите Переменные среды, в разделе Системные переменные найдите PATHи щелкните по нему.

  3. В окнах редактирования измените PATH, добавив местоположение класса к значению для PATH. Если у вас нет элемента PATH, вы можете добавить новую переменную и добавить в PATHкачестве имени имя, а местоположение - в качестве значения.

  4. Закройте окно.

  5. Снова откройте окно командной строки и запустите свой код Java.


Я также не вижу ссылок на jdk 6 в переменной PATH. Только Java 5 X)
Jeune

Это пример, процедура все та же ..
Джон Т

4

Не все приложения используют JAVA_HOMEдля получения версии JDK. Как уже говорилось, некоторые из них используют %SystemRoot%\System32\java.exe. Вы можете сделать, %SystemRoot%\java.exe -versionчтобы увидеть, что это за версия.

Что я должен добавить к другим ответам, так это то, что если вы строите с помощью Maven, M2_HOME\binтакже необходимо сделать так, %SystemRoot%чтобы Maven использовал правильную JAVA_HOMEверсию.


1

JAVA_HOME не должен указывать на корзину!

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

Также убедитесь, что путь к JAVA_HOME правильный! Если есть опечатка и C: \ Windows \ System32 \ находится в вашем пути, тогда этот java.exe будет запущен вместо того, который вы указали.


0

Для меня на win 10 javac -version показывал java7, а java -version - java8.До «где java» в командной строке показывал java в трех местах. Мне пришлось удалить Java из C: \ Windows \ System32, удалить запись "C: \ ProgramFile \ Oracle \ Java \ javapath" и "C: \ ProgramData \ Oracle \ Java" из переменной пути, оставить только запись Jdk7 в переменной пути работал после двухчасовой борьбы.


0

Перейдите в расширенные настройки переменных среды и отредактируйте переменную пути. Какую бы версию Java вы не хотели, просто переместите путь этих версий выше всех других переменных среды других версий Java.

здесь в образе переменная среды java_home перемещается вверх, чем среда Java оракула


-1

Попробуй это:

@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

-1

Я столкнулся с той же проблемой. Позже я обнаружил, что виновником была Java 8. Раньше я устанавливал Java 8, но сейчас нет папки для Java 8 и мой JAVA_HOME установлен на jre7, но все же я столкнулся с проблемой выше.

решение

Я удалил присутствующий javapath в C: \ ProgramData \ Oracle \ Java . Теперь моя система работает нормально. Это также решило мою проблему запуска затмения .


-2

Я была такая же проблема. Делая это, я решил проблему.

В Windows 8 или 10 вам необходимо удалить «C: \ ProgramFile \ Oracle \ Java \ javapath» из пути в переменной среды.

Это может решить проблему.


2
Это было предложено уже 2 года назад
Ramhound
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.