Я использую Windows 7 Professional x64 и у меня установлены следующие версии Java:
х64
- 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.
решение1
Вероятно, вы скопировали java.exe в один из системных путей (насколько мне известно, это поведение установщика Java по умолчанию). Чтобы проверить, что на самом деле выполняется при запуске 'java -version', запустите из командной строки:
for %I in (java.exe) do @echo %~$PATH:I
и он скажет вам, где это находится.
решение2
При установке публичной JRE (используемой плагином Java) файл java.exe также создается в C:\WINNT\system32 (IIRC). Вероятно, выполняется эта команда java, поскольку C:\WINNT\system32 предшествует каталогу JDK/bin в вашем PATH.
Поместите каталог JDK/bin в начало PATH
решение3
Папки PATH проверяются в том порядке, в котором они появляются. Попробуйте переместить путь java на передний план. Если это исправит проблему, значит, где-то в вашем пути есть другая версия.
решение4
Как я недавно узнал, убедитесь, что вы определяете переменные JAVA_HOME
в разделе «Системные переменные», а не в разделе «Пользовательские переменные».
У меня было %JAVA_HOME%\bin
в начале, PATH
но это не работало - добавление JAVA_HOME
в систему решило проблему.