Почему ANT говорит мне, что JAVA HOME ошибается, когда это не так?
Я получаю ошибку:
C:devwsspringappbuild.xml: 81: не удается найти компилятор javac; com.солнце.инструменты.и javac.Главное не в classpath. Возможно, JAVA_HOME не указывает на JDK. В настоящее время он установлен на "C:Program файлыJavajre6"
но я четко установил мой JAVA_HOME, чтобы быть C:Program файлыJavajdk1.6. 0_14
где муравей получает это значение?
24 ответа:
когда вы говорите, что у вас есть" четко установить " JAVA_HOME в "C:\Program Files\Java\jdk1.6. 0_14" - это то, что вы видите при запуске "set" из командной строки? Я считаю, что Ant угадает значение для JAVA_HOME, если оно вообще не установлено... возможно ли, что у вас установлен каталог-Java вместо переменной JAVA_HOME?
Если это не так, я предлагаю вам изменить
ant.bat
пакетный файл (и что бы он ни называл - я не могу вспомнить, является ли он запутанным или нет навскидку), чтобы распечатать JAVA_HOME на начните и в различных других интересных местах.
- в Eclipse выберите выполнить→ Внешние Инструменты→ Конфигурации Внешних Инструментов.
- выберите JRE tab.
- выберите Установленные JREs....
- выберите добавить.
(Выберите стандартная VM там, где это применимо.)- выберите каталог.
- перейдите к вашей версии JDK (не JRE) вашего установлена Java
(например,C:\Program Files\Java\jdk1.7.0_04
).- клик готово и ОК.
- выберите JDK в отдельный JRE и нажмите кнопку закрыть.
- повторно запустите сценарий Ant-получайте удовольствие!
это сработало в конкретном сценарии, с которым я столкнулся.
я столкнулся с той же проблемой, когда я пытаюсь запустить Ant build, используя следующую команду:
java -cp ant.jar:ant-launcher.jar org.apache.tools.ant.Main
вывод команды:
BUILD FAILED XXX/build.xml:8: Unable to find a javac compiler; com.sun.tools.javac.Main is not on the classpath. Perhaps JAVA_HOME does not point to the JDK. It is currently set to "/usr/lib/jvm/java-6-openjdk/jre"
похоже, исполняемый файл Java комплектации "каталог/usr/lib в/в jvm/java-машины 6-пакеты OpenJDK/JRE и" как переменной JAVA_HOME, в отличие от "в/usr/lib в/в JVM или Java-6-OpenJDK В", где JDK устанавливается.
Я решил эту проблему путем установки
fork="yes"
в своем<javac>
задач.взгляните на: http://ant.apache.org/manual/Tasks/javac.html
кроме того, возможно, что у вас включено /bin в установите переменную окружения JAVA_HOME, и Муравей добавление /bin, чтобы он, таким образом, не найдя каких-либо EXE-файлы. Это случилось со мной :}
убедитесь, что вы делаете не используйте конечную точку с запятой: это не будет работать:
set JAVA_HOME=C:\Program Files (x86)\Java\jdk1.6.0_29;
Это:
set JAVA_HOME=C:\Program Files (x86)\Java\jdk1.6.0_29
Я встретил аналогичную проблему. Я бы связался с запуском Ant task fron Maven build, и у меня возникла проблема. Я исправил это как ниже шаги:
- убедитесь, что JAVA_HOME установлен правильно. Вы можете проверить его на Windowns в командной строке как: C: > echo %JAVA_HOME% Результат будет выглядеть так: C:\Progra~1\Java\jdk1.6. 0_30\
- инструменты копирования файлов.jar из каталога %JAVA_HOME%\lib в каталог lib Maven.
и это сработало для меня.
для решения этой проблемы добавьте инструменты.файл Jar в окно->предпочтения->муравей-> во время выполнения .
в eclipse установите установленный параметр JRE в JDK-в проекте (свойства проекта -> Путь сборки Java-> библиотеки) или глобальное значение по умолчанию в настройках (Java->установленный JREs). Установка eclispe сильнее, чем системная переменная.
Я надеюсь, что вы знаете о системных и пользовательских переменных среды. Пользователь из них являются более предпочтительным по сравнению с системой. Если вы установили свой JAVA_HOME в системных переменных и если есть запись для того же в пользовательских переменных, то вы получите только последний.
щелкните правой кнопкой мыши на моем компьютере, перейдите в Свойства, выберите вкладку Дополнительно и нажмите на переменные среды, чтобы увидеть список переменных среды пользователя и системы.
точка с запятой сбивала меня с толку: у меня было
JAVA_HOME
установить в "C:\jdk1.6.0_26;" вместо "C:\jdk1.6.0_26". Я удалил конечную точку с запятой после того, как последовал предложению Джона Скита изучить . Это часть этого файла:if "%JAVA_HOME%" == "" goto noJavaHome if not exist "%JAVA_HOME%\bin\java.exe" goto noJavaHome
таким образом, точка с запятой не была обрезана с конца, в результате чего это не удалось найти файл, поэтому по умолчанию "C:\Java\jre6-или что-то в этом роде.
запутанная часть заключается в том, что HowtoBuild страницы состояний использовать точку с запятой, но это, кажется, сломать его.
я столкнулся с той же проблемой, что и исполняемое свойство в теге javac, которое должно быть установлено в местоположение javac.exe решил проблему для меня. Это решило проблему
<javac srcdir="${srcDir}" destdir="${buildDir}" fork="true" executable="C:\Program Files\Java\jdk1.7.0_03\bin\javac"/>
на самом деле нашел этот ответ superuser.com но мне пришлось копировать инструменты.jar из моего каталога JDK\lib в каталог JRE\lib.
имеет нулевой смысл...единственное, о чем я могу думать, это то, что Sun представила эту ошибку в последней Java runtime (Java 7 Update 11) или ошибку в Ant в том, как она читает текущее местоположение JDK (JRE более обновлен, чем JDK, очевидно, который также глуп от Sun...они должны выпускать JDK каждый раз, когда они обновляют JRE).
мой переменной JAVA_HOME был установлены правильно. Я подтвердил, сделав "set JAVA_HOME". Он указал на мой каталог JDK и был написан правильно. Однако Ant утверждал, что не может найти javac, но думал, что JAVA_HOME был в моем каталоге JRE.
моя система работала нормально до последних обновлений Sun JRE7 (10 и 11). Ant-это версия 1.8.4
когда все остальное правильно, попробуйте следующее
- Окне -> Перейти Настройки -> Муравей -> Выполнения -> Классов
- разверните глобальные записи и проверьте инструменты jdk, доступные здесь.
- добавить нужные инструменты.jar из определенной версии java, такой как "C:\Program файлы\Java\jdk1.6.0_45\lib\tools.банку"
- Теперь построить и проверить результаты.
Примечание: добавить инструменты.jar для компилятора java, который вы хотите использовать и дать предпочтение к нему, перемещая его вверх в списке инструментов.jar, когда несколько инструментов.jar (компиляторы java) присутствуют.
У меня была та же проблема. Мой пакет JDK, указанный JAVA_HOME, не имел никаких инструментов.сосуд Убедитесь, что ваш JDK установить.дательства и инструменты.банку
(понятно сообщение об ошибке сбивает с толку)
установите JAVA_HOME в переменных окружения как
D:\Program Files\IBM\SDP\jdk
Не ставьте кавычки и точки с запятой. Это работает для меня.Пожалуйста, попробуйте решение. На самом деле в муравейнике.bat он проверяет наличие соответствующихJAVA_HOME
в случае если муравей.летучая мышь не в состоянии найти его, то этоJAVA_HOME
указывает JRE по умолчанию.
Я также столкнулся с той же проблемой. Я использую Windows 7, и у меня было установлено две версии java. Сначала я установил последнюю версию java 7, а затем версию 5.
содержимое моего каталога установки java:
C:\Program Files\Java> jdk1.5.0_14 jdk1.7.0_17 jre1.5.0_14 jre7
и мой JAVA_HOME был установлен в правильное значение, которое было:
C:\>set ja JAVA_HOME=C:\Program Files\Java\jdk1.5.0_14
но все равно я получаю ту же проблему:
XXXXXXX\build.xml:478: The following error occurred while executing this line: XXXXXXX\build.xml:477: Unable to find a javac compiler; com.sun.tools.javac.Main is not on the classpath. Perhaps JAVA_HOME does not point to the JDK. It is currently set to "C:\Program Files\Java\jre7"
после опробования всех предложений в этой теме я понял свою ошибку. Я пытался установить переменную среды в разделе" пользовательские переменные "вместо" системные переменные". После установки его в" системные переменные " он работал нормально. Но я столкнулся с другой проблемой.
версия java по умолчанию, на которую он указывает, по-прежнему 7.
C:\>java -version java version "1.7.0_17" Java(TM) SE Runtime Environment (build 1.7.0_17-b02) Java HotSpot(TM) Client VM (build 23.7-b01, mixed mode, sharing)
Я не уверен, как сделать это версия 5.
я столкнулся с этой проблемой при создании моего проекта с Дженкинсом. Во-первых, он не смог найти
ant.bat
, который был исправлен путем добавления пути к ant.bat к системной переменной окружения path. Затем ant не смог найти каталог jdk. Это было исправлено щелчком правой кнопкой мыши наmy computer > properties > advanced > environment variables
и создание новой переменной среды с именемJAVA_HOME
и присвоение ему значенияC:\Program Files\Java\jdk1.7.0_21
. Не создавайте эту переменную среды в пользовательских переменных. Создайте его только под системными переменными.
В обоих случаях я пришлось перезагрузить систему.
Это распространено, чтобы получить эту проблему. Я не могу установить какой-либо конкретный Java home в моей системе, поскольку у меня есть 2 разные версии Java (Java 6 и Java 7) для разных сред. Чтобы решить эту проблему, я включил путь JDK в конфигурацию запуска при открытии сборки.XML-файл. Таким образом, 2 разных файла сборки используют 2 разные версии Java для сборки. Я думаю, что может быть лучшее решение этой проблемы, но, по крайней мере, вышеупомянутый подход избегает установки переменной JAVA_HOME.
FYI, я использую Windows 7 и должен был перезапустить Windows, чтобы новая настройка JAVA_HOME вступила в силу.
была та же проблема;
c:\jb\src\build.xml:191: Unable to find a javac compiler; com.sun.tools.javac.Main is not on the classpath. Perhaps JAVA_HOME does not point to the JDK. It is currently set to "C:\Program Files\Java\jre7" Total time: 0 seconds c:\jb\src>echo %JAVA_HOME% c:\Program Files\Java\jdk1.7.0_13
устранение:
path = c:\ant\bin\;%PATH% path = c:\Program Files\Java\jdk1.7.0_17\bin;%PATH% set "JAVA_HOME=c:\Program Files\Java\jdk1.7.0_13"
Я думаю, что только инструкция JDK path сделает это, но я ленив, чтобы понять это выше, решение является пуленепробиваемым. : -)
также с помощью Windows7
быстрая работа вокруг для того же
копировать C:\Program файлы\Java\jdk1.6.0_14\lib\tools.jar to C:\Program файлы\Java\jre6\lib\
это исключение приходит, потому что JAVA_HOME устанавливается как C:\Program файлы\Java\jre6 и Ant не могут найти инструменты.баночка в нем.