Неправильная версия Java сообщается


17

Я использую Windows 7 Professional x64 и у меня установлены следующие версии Java:

x64

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

x86

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

в моих переменных окружения у меня есть PATHсодержащиеся C:\Program Files\Java\jdk1.6.0_24\binи JAVA_HOMEустановленыC:\Program Files\Java\jdk1.6.0_24\bin

Однако запущенные java -versionотчеты

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)

Как это так, когда в моих переменных окружения нет ссылки на эту версию Java.

Любая помощь в этом вопросе будет отличной, поскольку я пытаюсь запустить Apache ANT с использованием Java 1.6.

Ответы:


27

Вы, вероятно, скопировали java.exe в один из системных путей (AFAIK - это поведение по умолчанию для установщика Java). Чтобы проверить, что на самом деле выполняется, когда вы запускаете «java -version», запустите из командной строки:
for %I in (java.exe) do @echo %~$PATH:Iи он скажет вам, где он находится.


1
Вау - это так полезно! Почему-то java.exeесть в system32. Я переместу его вверх по пути, как упомянуто.
Малахия

1
Та же проблема здесь, java.exeбыла в system32ANDProgramData\Oracle\javapath
Кевин Лабекот

Если вам интересно, что делать дальше, вы можете переименовать exes. Я переименовал java.exe, javaw.exeи javaws.exeк java-foobar.exe, javaw-foobar.exeи javaws-foobar.exeсоответственно.
javatarz

Это увеличивает количество мест, которые мне нужно проверить, до 4: PATH, JAVA_HOME, Панели управления, а теперь и System32 ... Просто вау. Однажды реестр станет 5-м. И я благодарю вас, сэр.
Ярослав

2

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


2

При установке общедоступной JRE (используемой плагином Java) файл java.exe также создается в C: \ WINNT \ system32 (IIRC). Вероятно, эта команда java выполняется, поскольку C: \ WINNT \ system32 находится перед каталогом JDK / bin в вашей переменной PATH.

Поместите каталог JDK / bin в начало ПУТИ


0

Это сообщит правильную версию Java, а также подскажет вам, в чем проблема:

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

0

Я предлагаю вам удалить все JDK и JRE. Затем вы устанавливаете последнюю версию JDK и обновляете свой путь к классу, JAVA_HOME и путь. Это сработало для меня.


-1

Как я недавно узнал, убедитесь, что вы определяете JAVA_HOMEв разделе «Системные переменные», а не в разделе «Пользовательские переменные».

Я имел %JAVA_HOME%\binв начале, PATHно это не работало - добавление JAVA_HOMEв систему исправило проблему.

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