Установка муравья; явно недоразумение JAVA_HOME - PullRequest
0 голосов
/ 06 апреля 2010

Я устанавливаю ant на компьютер с Windows XP и следую инструкциям на сайте руководства Apache . В нем сказано установить JAVA_HOME, поэтому я проверил, увидел, что не существует переменной среды с именем JAVA_HOME, сделал ее и установил ее в "C: \ Program Files \ Java \ jdk1.6.0_19"

Однако, когда я пытаюсь запустить ant debug, он говорит мне, что JAVA_HOME в настоящее время имеет значение "C: \ Program Files \ Java \ jre6"

Я предполагаю, что JAVA_HOME не является переменной окружения. Но если это не так, я не знаю, с чего начать. Кто-нибудь знает?

Редактировать: О да, это также вызывает у меня наличие tools.jar, но я предполагаю, что, когда я исправлю проблему JAVA_HOME, это также поможет терминалу найти tools.jar. Или, может быть, я ошибаюсь. Спасибо

Ответы [ 2 ]

5 голосов
/ 06 апреля 2010

Следуя советам Newtopian, вы можете быстро подтвердить, является ли это поведение проблемой, запустив в терминале

C:\>set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_19
C:\>ant debug

Кроме того, я не уверен, является ли текст, который вы ввели в переменную окружения JAVA_HOME, буквально «C: \ Program Files \ Java \ jdk1.6.0_19», то есть с кавычками, но если это так, вы должны удалить кавычки, как они скинут ant.bat.

Вот соответствующий бит из ant.bat

:checkJava
set _JAVACMD=%JAVACMD%

if "%JAVA_HOME%" == "" goto noJavaHome
if not exist "%JAVA_HOME%\bin\java.exe" goto noJavaHome
if "%_JAVACMD%" == "" set _JAVACMD=%JAVA_HOME%\bin\java.exe
goto checkJikes

:noJavaHome
if "%_JAVACMD%" == "" set _JAVACMD=java.exe

... omitted ...

"%_JAVACMD%" %ANT_OPTS% -classpath "%ANT_HOME%\lib\ant-launcher.jar" "-Dant.home=%ANT_HOME%" org.apache.tools.ant.launch.Launcher %ANT_ARGS% %ANT_CMD_LINE_ARGS%

Если это не поможет, не могли бы вы опубликовать свою задачу отладки?


Два варианта сделать его постоянным:

  1. Запустите это:

    C:\>REG delete HKCU\Environment /V JAVA_HOME
    C:\>REG delete HKLM\Environment /V JAVA_HOME
    C:\>REG add HKCU\Environment /V JAVA_HOME /d "C:\Program Files\Java\jdk1.6.0_19"

(в основном, убедитесь, что у вас есть только один набор JAVA_HOME, и это правильно; обязательно закройте и снова откройте терминал после этого)

  1. Если ничего не помогло, решение дрянного пакетного файла:

    @echo off
    set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_19
    ant %*

сохраните как ant_wrapper.bat (или как угодно), и вы сможете сделать ant_wrapper debug.

(Оба эти решения не проверены)

3 голосов
/ 06 апреля 2010

Убедитесь, что вы проверили переменные среды пользователя и системы. Я не уверен, каково здесь преимущество одного над другим, но, скорее всего, вы отметили только одно и создали его там, и оно переопределяется другим.

Также при создании переменной среды обязательно откройте новую командную оболочку, чтобы изменения вступили в силу. затем попробуйте 'set', в котором будут перечислены все переменные среды, которые вы видели в среде, для только что созданной командной строки.

Если все хорошо, но Ant все еще не видит правильный, то проверьте пакетные файлы, которые запускают ANT, если javahome также не установлен там. Если это так, убедитесь, что он использует переменную окружения и не пытается установить ее заново.

Надеюсь, это поможет

...