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

Я использую 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.

6 ответов

Решение

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

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

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

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

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

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

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

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

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

Другие вопросы по тегам