Чому 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.Doing "де java" у командному рядку показав java у трьох місцях. Мені довелося видалити Java з C: \ Windows \ System32, Видалити записи "C: \ ProgramFile \ Oracle \ Java \ javapath" та "C: \ ProgramData \ Oracle \ Java" із змінної шляху, зберегти лише змінну Jdk7 у змінній шляху працював після двогодинної боротьби.


0

Перейдіть до розширених налаштувань змінних середовища та відредагуйте змінну шляху. яку б версію Java ви не хотіли, просто перейдіть до цієї версії вище за всі змінні середовища інших версій Java.

тут на зображенні змінна середовища java_home переміщена вгору, ніж середовище Java Oracle


-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 роки тому
Рамхаунд
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.