Error running javac exe compiler

Hi I encounter an error "Error running C:jdk1.5.0_06binjavac.exe compiler" when building my project using ant1.7. My project has 10 eclipse plugins, and each plugin is compiled by invo...

Hi

I encounter an error «Error running C:jdk1.5.0_06binjavac.exe compiler» when building my project using ant1.7.

My project has 10 eclipse plugins, and each plugin is compiled by invoking following ant target
<!— ===================================================================
Compile specified plugin
target parameters:
param.plugin.dir: the plugin directory
param.plugin.targetJarFile: the name of jar file for the given plugin
param.plugin.src.dir: the folder name of source codes. Note: it is relative path name
param.fork: indicate if another process is forked to run javac
=================================================================== —>
<target name=»compilePlugin»>
<!— Prepare compile environment —>
<!— Delete obsolete build folder —>
<delete dir=»${param.plugin.dir}/${build.dir}» quiet=»true»/>
<!— Delete obsolete jar file —>
<delete file=»${param.plugin.dir}/${param.plugin.targetJarFile}» quiet=»true»/>
<mkdir dir=»${param.plugin.dir}/${build.dir}»/>

<!— Compile source codes —>
<javac srcdir=»${param.plugin.dir}/${param.plugin.src.dir}»
destdir=»${param.plugin.dir}/${build.dir}»
failonerror=»${javacFailOnError}»
verbose=»${javacVerbose}»
debug=»${javacDebugInfo}»
deprecation=»${javacDeprecation}»
optimize=»${javacOptimize}»
source=»${javacSource}»
target=»${javacTarget}»
fork=»${param.fork}» memoryInitialSize=»256m» memoryMaximumSize=»512m»>
<classpath refid=»compile.classpath» />
</javac>

<!— Create plugin jar file —>
<copy todir=»${param.plugin.dir}/${build.dir}» failonerror=»true»>
<fileset dir=»${param.plugin.dir}/${param.plugin.src.dir}» excludes=»**/*.java, **/package.htm*» />
</copy>
<jar jarfile=»${param.plugin.dir}/${param.plugin.targetJarFile}» basedir=»${param.plugin.dir}/${build.dir}»/>
<delete dir=»${param.plugin.dir}/${build.dir}» quiet=»true»/>
</target>

Since each of first 9 plugins contains less than 500 java source files, we always set «param.fork» to false when invoking this ant target.

For the 10th plugin, it has about 1000 source files. If we set «param.fork» to false, we will get the error «Error running javac.exe compiler». So we have to set «param.fork» to true when compiling it. This week, this plugin contains about 1250 files and we get the same error again when compiling it. I tried to increase the «memoryMaximumSize» to «768», but still couldn’t get through it.
BTW, There are about 150 jar files in our classpath for compiling plugins. Do many jar files cause this problem?

Any help is highly appreciated.

Many thanks

Oceanman

Когда я запускаю свою сборку 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

18 ответы

У меня была та же проблема, и проблема заключалась в том, что в eclipse java.home ссылался на JRE вместо JDK. Я изменил его, и сборка прошла успешно. Вы можете сделать следующее, чтобы изменить его на JDK:

«Настройки» > «Java» > «Установленные JRE» > «Добавить…» Для «Тип JRE» выберите «Стандартная виртуальная машина» > «Далее» > «Каталог»: выберите каталог JDK (вместо JRE) (в моем случае: C:Program FilesJavajdk1.6.0. 16_XNUMX), нажмите OK.

Теперь вы вернулись к «Установленным JRE», здесь также выберите JDK.

Сообщение ниже помогло найти решение.
JAVA_HOME указывает не на то место

ответ дан 23 мая ’17, 13:05

Если принятый ответ выше не решает проблему для вас (как и для меня), после обновления java.home до JDK вместо JRE, как это предлагается в принятом ответе выше, перейдите в «Выполнить» -> «Внешние инструменты» — > Конфигурация внешних инструментов -> выберите файл build.xml в левом меню -> выберите вкладку JRE -> выберите JDK (из раскрывающегося списка) для параметра «Отдельный переключатель JRE» -> Нажмите «Выполнить».

Это должно решить проблему.

Создан 05 ноя.

У меня была такая же проблема, и я удалил вилку атрибута из javac, и проблема исчезла.

ответ дан 20 дек ’11, 16:12

Возможно, проблема с javac связана с тем, что «javac.exe» отсутствует в вашем системном пути PATH, отредактируйте системный путь и добавьте в него каталог JDK /bin, чтобы исправить эту проблему.

Откройте оболочку или командную строку и попробуйте ввести: javac, чтобы проверить, правильно ли указан системный путь.

ответ дан 03 авг.

Настройка eclipse для указания на JDK вместо JRE у меня не сработала. После дальнейших исследований я решил эту проблему, остановив процесс сборки от разветвления. В вашем build.xml удалите атрибут fork от <javac> тег.

Создан 30 ноя.

Столкнулся с такой же проблемой, вот мой совет, может кому поможет.
На самом деле сообщение Error running javac.exe compiler значит что-то пошло не так. Вопрос в том, что именно. Когда Муравей бежит javac задача с fork="true" флаг, он не печатает никаких сведений об ошибке. В моем случае он не печатал их даже после того, как я добавил verbose="true", как было предложено здесь. Решение заключалось в Добавить -подробный флаг в командную строку Ant:

ant -verbose

После этого Ant начинает печатать полные сообщения об ошибках, чтобы вы могли решить проблему.

ответ дан 23 мая ’17, 13:05

Принятый ответ не сработал для меня. Но правый клик в Ant и настройка Java Runtime Environment (JRE) до Комплект для разработки Jave (JDK) работал на меня.

Ответ Абхи Рампала это шаг за шагом так же, как я решил проблему на своем затмении.

Перейдите в меню «Выполнить» -> «Внешние инструменты» -> «Конфигурация внешних инструментов» -> выберите файл build.xml в левом меню -> выберите вкладку JRE -> выберите JDK (из раскрывающегося списка) для параметра «Отдельная JRE» -> нажмите «Выполнить».

Создан 19 июля ’18, 20:07

Я решил это, проверив свои переменные среды в Windows 7. Я обнаружил, что JAVA_HOME указывает на C: Program Files (x86)Javajdk1.6.0_31, когда он должен быть C: Program FilesJavajdk1.6.0_31. Если вы хотите знать, как прочитайте это

ответ дан 23 мая ’17, 11:05

Если вы используете ant в eclipse, нажмите «Выполнить как» -> второй вариант Ant, выберите путь JDK и снова запустите сборку.

Создан 30 июля ’15, 14:07

Попробуйте изменить memorymaximumsize=»1G» на memorymaximumsize=»512M».

ответ дан 03 авг.

Попробуйте освободить часть оперативной памяти. Закройте жадные до памяти программы и остановите жадные до памяти процессы, если можете.

ответ дан 11 апр.

Я пробовал все, но у меня ничего не получалось, пока я не установил (вилка = ‘нет’ или fork=’false’ в вашем случае) и отлично сработало для меня

ответ дан 24 дек ’13, 09:12

Я удалил fork=»true» и преодолел этот фрагмент кода. Что может быть интересно тем из вас, у кого есть эта проблема, так это то, что теперь в этой строке я получаю вывод:

'Since fork is false, ignoring memoryMaximumSize setting.'

Таким образом, это может быть проблема с memoryMaximumSize, если вам нужно сохранить параметр fork=»true», как было предложено выше.

ответ дан 10 мар ’14, в 12:03

Я исправил проблему следующим образом:

У моей домашней папки Java был неправильный путь. Это должно было быть C:Program Files (x86)Javajdk1.5.0_15 но вместо этого было C:Program Files (x86)Javajdk1.5.0_15bin.

Создан 17 июн.

Мы столкнулись с той же проблемой на машине сборки Windows, тогда как локально (на машине unix) все сработало. Fork = true тоже не помогло, это привело к исключению Process fork failed также только на сервере сборки

Исследования

После некоторых исследований мы поняли, что путь к классам может быть слишком длинным. Мы воссоздали точную структуру папок локально на компьютере с Windows, и мы столкнулись с той же проблемой, и мы увидели, что путь к классам был слишком длинным (мы использовали -v и -d для получения подробной информации о том, как долго он был), и это было причиной ошибки .

Решения

Решение состояло в том, чтобы создать банку, которая содержит только манифест со всеми библиотеками, см. этот ответ Больше подробностей

ответ дан 23 мая ’17, 13:05

Для меня это были резервные копии библиотек внутри каталога WEB-INF/lib. У меня было несколько каталогов lib внутри основного lib. И путь к классам включал их все, что приводило к тому, что команда javac становилась слишком длинной.

Я удалил эти каталоги, и это сработало для меня.

ответ дан 31 дек ’18, 12:12

Это очень простой вопрос. Путь к базовому каталогу имеет множество подпапок, ведущих к фактической папке. Например: /folder1/folder2/…/…/folderN/{проект}

Уменьшите размер пути к базовому каталогу, и он легко скомпилируется. Например: D:/{проект}

Отблагодаришь позже.

ответ дан 15 окт ’20, 17:10

В большинстве случаев длинный путь к папке проекта приводит к сбою сборки. Это то, что было найдено всегда, даже при запуске из командной строки. Просто сократите путь до:

{Буква диска}/{Папка проекта Checkout}

и команды ant обязательно скомпилируют java JDK.

ответ дан 19 апр.

Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками

java
eclipse
ant
build

or задайте свой вопрос.

14 ответов

У меня была та же проблема, и проблема была в eclipse. java.home имел в виду JRE вместо JDK. Я изменил его, и сборка прошла успешно. Вы можете сделать следующее, чтобы изменить его на JDK:

Настройки > Java > Установленная JRE > Добавить… Для «JRE Type» выберите «Стандартная виртуальная машина» > Далее > Каталог: выберите каталог JDK (вместо JRE) (в моем случае: C:Program FilesJavajdk1.6.0_16), нажмите OK.

Теперь вы вернулись в «Установленные JRE», также выберите JDK.

Следующая статья помогла найти решение.
JAVA_HOME указывает на неправильное место

spbala
22 фев. 2011, в 13:25

Поделиться

Если принятый ответ выше не решает проблему для вас (как это было не для меня), после обновления java.home в JDK вместо JRE, как предложено в принятом ответе выше, Go to Run → Внешние инструменты → Конфигурация внешних инструментов → выберите ваш файл build.xml в меню слева → выберите вкладку JRE → выберите JDK (из выпадающего списка) для параметра «Отдельная кнопка JRE» → «Выполнить».

Это должно устранить проблему.

Abhi Rampal
05 нояб. 2012, в 21:56

Поделиться

У меня была та же проблема, и я удалил атрибут fork из javac, и проблема исчезла.

Avinash
20 дек. 2011, в 17:04

Поделиться

Возможно, проблема javac заключается в том, что «javac.exe» не находится в вашей системе PATH, пожалуйста, отредактируйте свой системный путь и добавьте в него свой каталог JDK/bin, чтобы исправить эту проблему.

Откройте оболочку или командную строку и попробуйте ввести: javac, чтобы проверить, правильно ли установлен системный путь.

Impiastro
03 авг. 2010, в 07:58

Поделиться

Настройка затмения, чтобы указать на JDK вместо JRE, не работала для меня.
С дальнейшим исследованием я решил эту проблему, остановив процесс сборки от разветвления.
В файле build.xml удалите атрибут fork из тега <javac>.

pall
30 нояб. 2011, в 11:30

Поделиться

Я столкнулся с той же проблемой, и вот мой совет, может быть, это поможет кому-то.
Фактически, сообщение Error running javac.exe compiler означает, что что-то пошло не так. Вопрос в том, что именно. Когда Ant запускает задачу javac с флагом fork="true", она не печатает никаких сведений об ошибке. В моем случае он не печатал их даже после того, как я добавил verbose="true", как предложено здесь. Решение заключалось в том, чтобы добавить флаг -verbose в командную строку Ant:

ant -verbose

После этого Ant начинает печатать полные сообщения об ошибках, поэтому вы можете исправить проблему.

Vladimir S.
21 апр. 2015, в 16:30

Поделиться

Я решил это, проверив мои переменные среды в моей Windows 7. Я обнаружил, что JAVA_HOME указывает на C: Program Files (x86)Javajdk1. 6.0_31, когда предполагается, что C: Программные файлыJavajdk1.6.0_31. Если вы хотите узнать, как прочитать это

Uriel Frankel
10 янв. 2013, в 09:03

Поделиться

Если вы запустите ant в eclipse, нажмите кнопку run as → ant second и выберите путь JDK и снова запустите сборку.

Kannan
30 июль 2015, в 14:04

Поделиться

Мы сталкиваемся с той же проблемой на машине для сборки Windows, тогда как локально (на машине Unix) все работает. Fork = true тоже не помогло, это привело к отказу процесса fork и только на сервере сборки

Исследование

После некоторых исследований мы поняли, что путь к классам может быть слишком длинным.
Мы воссоздали точную структуру папок локально на машине Windows, и мы сталкиваемся с той же проблемой, и мы увидели, что путь к классам слишком длинный (мы использовали -v и -d для подробностей, как долго это было), и это стало причиной ошибки.

Решение

Решением было создать банку, содержащую только манифест со всеми библиотеками, см. этот ответ для более подробной информации

Joker
29 июль 2015, в 15:32

Поделиться

Я исправил проблему следующим образом:

В моей домашней папке Java был неправильный путь. Он должен был быть C:Program Files (x86)Javajdk1.5.0_15, но вместо этого он был C:Program Files (x86)Javajdk1.5.0_15bin.

Salim
16 июнь 2014, в 23:18

Поделиться

Я удалил fork = «true», и я прошел мимо этого фрагмента кода. Что может быть интересно тем из вас, у кого есть эта проблема, так это то, что теперь, на этой строке, я получаю вывод:

'Since fork is false, ignoring memoryMaximumSize setting.'

Таким образом, это может быть проблема с memoryMaximumSize, если вам нужно сохранить настройку fork = «true», как было предложено выше.

Scala Enthusiast
10 март 2014, в 13:31

Поделиться

Я пробовал все, но ничего не работало для меня, пока я не установил ( fork = ‘no’ или fork = ‘false’ в вашем случае) и отлично работал у меня

Ahmed Hamdy
24 дек. 2013, в 11:15

Поделиться

Попробуйте освободить основную память. Закройте программы с памятью и остановите голодные процессы, если сможете.

knb
11 апр. 2012, в 09:50

Поделиться

Попробуйте изменить memorymaximumsize = «1G» на memorymaximumsize = «512M».

fuwaneko
03 авг. 2010, в 08:05

Поделиться

Ещё вопросы

  • 1Как остановить скрипт Python — только если он отлаживается
  • 1Вход в Google — проверьте, принадлежит ли пользователь определенной организации
  • 0Ionic App вылетает при потере фокуса [дубликата]
  • 1Добавить таймер для изображений в javafx
  • 1C # — правильно запустить элемент управления или формы в отдельном потоке
  • 1Странно «ModuleNotFoundErrior или нет модуля с именем iexfinance»
  • 0Заполнить HTML данными JSON
  • 1Слушатель событий Watson-IoT в python
  • 1не удается импортировать проект sbt с JDK 1.8?
  • 0заставить jsf не декодировать код в html
  • 1Сохранить переменную в постбэках, но очистить / не сохранить на странице выхода
  • 0ID выбранного узла в дереве js
  • 0Разница между пустыми и не пустыми функциями в C ++
  • 0Openlayers 3, применение массива пространственных объектов к векторным результатам в getId () не является функцией
  • 0Метод scrollTo () неправильно работает с Android при добавлении параметров
  • 0Как вы видите, что ошибки Firebug?
  • 1hard model.save () поднять NotImplementedError
  • 1использовать список объектов из формы один в форме два
  • 1Макет глобальной переменной в Python
  • 0(c ++) Чтение числовых данных в столбце из текстового файла и определение наибольшего значения
  • 1Угловой с использованием чистого JavaScript
  • 1Как настроить нетрадиционные отношения внешнего ключа?
  • 0Вставьте таблицу в метку, используя HTML
  • 0Отправить данные Json Array с несколькими объектами
  • 0Передача данных на сервер с использованием JSON в Codeigniter
  • 0Обновление MySQL View не удается, несмотря на возможность обновления
  • 0Поместите теги <img> в нижний колонтитул <div>
  • 0Python или Html живой поток с камеры?
  • 1Отслеживание статистики Android Маркета
  • 1Как получить высоту в пикселях в чистом JavaScript?
  • 1Входит ли моя логика синтаксического анализа в мой обработчик файлов или выделенный код в веб-форме ASP.NET?
  • 0Установка значения по умолчанию для переменной в конструкторе
  • 0Как вы можете остановить границы элементов ячейки таблицы, перекрывающих область заполнения ячейки?
  • 1Как нарисовать 2 PNG изображения на экране одновременно
  • 0В angular, используя ionic, я хочу создать loginapp, в котором я не могу получить доступ к $ stateprovider routing для страницы входа в систему, используя <ion-nav-view>
  • 1Невозможно изменить ось x с помощью dc.js v 2, не распознает .x или .xAxis
  • 0Почему первая вкладка размещена неправильно?
  • 0класс c ++ включает неопределенную ссылку
  • 0разбиение строки на разные массивы
  • 0MEAN стек угловой тег html <img> не работает
  • 1Как игнорировать поле в базе данных с Java-запросом sql Netbeans
  • 1Перехватить наOptionsItemSelected
  • 1«Отсутствует издатель google_id_token» при создании документа OpenApi для конечных точек облака с Auth0
  • 0Ошибка типа: jQuery.colorbox не определен
  • 0MoneyWorks: программно обновить запись
  • 1Опубликовать сайт Umbraco на IIS
  • 1Android, как показать другой вид поверх существующего ListView после того, как флажок установлен
  • 0Лучший способ для нагрузок IF — ELSE — INCLUDE?
  • 0Я не могу отправить данные формы в базу данных MySQL
  • 0запоминать формы записи с использованием php

Понравилась статья? Поделить с друзьями:
  • Error running exception handlers
  • Error running context an error occurred during ssl communication
  • Error running app no target device found android studio что делать
  • Error running adb exe droidcam
  • Error run failed please update the board