Получение ошибки при запуске сообщения компилятора javac.exe при использовании Ant в Eclipse
Когда я запускаю свою конструкцию Ant в Eclipse, я получаю следующее сообщение об ошибке и сбой сборки Ant.
Сообщение об ошибке: Ошибка при запуске компилятора javac.exe
Строка, в которой останавливается сборка:
<javac destdir="${classes.home}" debug="on" fork="true" memoryinitialsize="512M" memorymaximumsize="1G">
<classpath refid="classpath"/>
<src path="${source.home}"/>
</javac>
Кто-нибудь сталкивался с подобной проблемой раньше? или кто-нибудь знает, что здесь не так?
Информация о системе: Eclipse Helio, JDK 1.5
Ответы
Ответ 1
У меня была та же проблема, и проблема была в eclipse. java.home имел в виду JRE вместо JDK. Я изменил его, и сборка прошла успешно. Вы можете сделать следующее, чтобы изменить его на JDK:
Настройки > Java > Установленная JRE > Добавить... Для "JRE Type" выберите "Стандартная виртуальная машина" > Далее > Каталог: выберите каталог JDK (вместо JRE) (в моем случае: C:\Program Files\Java\jdk1.6.0_16), нажмите OK.
Теперь вы вернулись в "Установленные JRE", также выберите JDK.
Следующая статья помогла найти решение.
JAVA_HOME указывает на неправильное место
Ответ 2
Если принятый ответ выше не решает проблему для вас (как это было не для меня), после обновления java.home в JDK вместо JRE, как предложено в принятом ответе выше, Go to Run → Внешние инструменты → Конфигурация внешних инструментов → выберите ваш файл build.xml в меню слева → выберите вкладку JRE → выберите JDK (из выпадающего списка) для параметра "Отдельная кнопка JRE" → "Выполнить".
Это должно устранить проблему.
Ответ 3
У меня была та же проблема, и я удалил атрибут fork из javac, и проблема исчезла.
Ответ 4
Возможно, проблема javac заключается в том, что "javac.exe" не находится в вашей системе PATH, пожалуйста, отредактируйте свой системный путь и добавьте в него свой каталог JDK/bin, чтобы исправить эту проблему.
Откройте оболочку или командную строку и попробуйте ввести: javac, чтобы проверить, правильно ли установлен системный путь.
Ответ 5
Настройка затмения, чтобы указать на JDK вместо JRE, не работала для меня.
С дальнейшим исследованием я решил эту проблему, остановив процесс сборки от разветвления.
В файле build.xml удалите атрибут fork
из тега <javac>
.
Ответ 6
Я решил это, проверив мои переменные среды в моей Windows 7. Я обнаружил, что JAVA_HOME указывает на C:\ Program Files (x86)\Java\jdk1. 6.0_31, когда предполагается, что C:\ Программные файлы\Java\jdk1.6.0_31. Если вы хотите узнать, как прочитать это
Ответ 7
Я столкнулся с той же проблемой, и вот мой совет, может быть, это поможет кому-то.
Фактически, сообщение Error running javac.exe compiler
означает, что что-то пошло не так. Вопрос в том, что именно. Когда Ant запускает задачу javac
с флагом fork="true"
, она не печатает никаких сведений об ошибке. В моем случае он не печатал их даже после того, как я добавил verbose="true"
, как предложено здесь. Решение заключалось в том, чтобы добавить флаг -verbose в командную строку Ant:
ant -verbose
После этого Ant начинает печатать полные сообщения об ошибках, поэтому вы можете исправить проблему.
Ответ 8
Попробуйте изменить memorymaximumsize = "1G" на memorymaximumsize = "512M".
Ответ 9
Попробуйте освободить основную память. Закройте программы с памятью и остановите голодные процессы, если сможете.
Ответ 10
Я пробовал все, но ничего не работало для меня, пока я не установил ( fork = 'no' или fork = 'false' в вашем случае) и отлично работал у меня
Ответ 11
Я удалил fork = "true", и я прошел мимо этого фрагмента кода. Что может быть интересно тем из вас, у кого есть эта проблема, так это то, что теперь, на этой строке, я получаю вывод:
'Since fork is false, ignoring memoryMaximumSize setting.'
Таким образом, это может быть проблема с memoryMaximumSize, если вам нужно сохранить настройку fork = "true", как было предложено выше.
Ответ 12
Я исправил проблему следующим образом:
В моей домашней папке Java был неправильный путь. Он должен был быть C:\Program Files (x86)\Java\jdk1.5.0_15
, но вместо этого он был C:\Program Files (x86)\Java\jdk1.5.0_15\bin
.
Ответ 13
Мы сталкиваемся с той же проблемой на машине для сборки Windows, тогда как локально (на машине Unix) все работает. Fork = true тоже не помогло, это привело к отказу процесса fork и только на сервере сборки
Исследование
После некоторых исследований мы поняли, что путь к классам может быть слишком длинным.
Мы воссоздали точную структуру папок локально на машине Windows, и мы сталкиваемся с той же проблемой, и мы увидели, что путь к классам слишком длинный (мы использовали -v и -d для подробностей, как долго это было), и это стало причиной ошибки.
Решение
Решением было создать банку, содержащую только манифест со всеми библиотеками, см. этот ответ для более подробной информации
Ответ 14
Если вы запустите ant в eclipse, нажмите кнопку run as → ant second и выберите путь JDK и снова запустите сборку.