15

Мой 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?

9 ответов9

17

Как упоминал Микел, на вашем компьютере java взят из C:\Windows\System32\java.exe .

Измените путь в переменных системного окружения, как упоминал Джон Т.

И измените его, поместив в путь C:\bea\jdk150_10\bin перед %SystemRoot%\system32 .

13

Бежать

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.

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

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

-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
-2

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

решение

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

-2

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .