Повідомляється про неправильну Java -версію


16

У мене працює Windows 7 Professional x64 і встановлено такі версії Java:

x64

  • C: \ Програмні файли \ Java
    • jdk1.6.0_24
    • jdk1.7.0_04
    • jdk1.7.0_07
    • jre6
    • jre7

x86

  • C: \ програмні файли (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.

Відповіді:


26

Напевно, у вас скопійовано java.exe на один із системних шляхів (AFAIK - це поведінка програми за замовчуванням інсталятора Java). Щоб перевірити, що насправді виконується при запуску "java -version", запустіть з командного рядка:
for %I in (java.exe) do @echo %~$PATH:Iі він підкаже, де він знаходиться.


1
Нічого собі - це так корисно! Чомусь java.exeє у system32. Я переміщу його вгору по шляху, як згадувалося.
Малахій

1
java.exesystem32ProgramData\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 на початок PATH


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.