Ant. Избавление от ошибки CreateProcess error=87, The parameter is incorrect

Подобного рода проблема является очень распространенной среди людей, регулярно использующих ant для сборки проектов. На первый взляд, эта проблема настолько не очевидна, что приводит в бешенство, после нескольких безнадежно утраченных часов поиска решения.
В выдаче поисковиков эта тема слабо раскрыта. "CreateProcess error=87, The parameter is incorrect" может произойти при генерации javadocs или использовании любой внешней (в данном контексте external) утилиты или программы, выполняющей определенную задачу.
Поскольку мы используем внешнюю программу, мы вызываем ее с передачей аргументов командной строки. Вот тут и зарыта собака.
Запустив ant с опцией -debug, можно увидеть, какие параметры ей передаются.
В моем случае, одной внешней тулзе передавался classpath длиной, сейчас внематочно, около 500 000 символов в длину. Как вам такое?
Вся проблема в classpath и, независимо от того, с чем вы работаете в ant, ошибка 87 сигнализирует. что процесс не может быть создан. Да и как он может быть создан, если этот класспасс при вставке в виндовый блокнот приводит последнего в состояние охуевания?
Настоятельно советую обрезать класспасы или поудалять ненужные папки, jar-ы и всякий хлам в папке, включенной в classpath.
Вывод: ройте в сторону параметров командной строки. Их длина может вызвать у Вас преждевременный климакс.
Материалы, которые могут вас заинтересовать
- Ant. Условный оператор. Выполнение действий при определенном условии.
- Как в ant подключить к build_filename.xml другой файл, в котором описаны свойства?
- Ant. Автоматизация сборки и упаковки проектных файлов
- Java Советы
- Почему локальные вложенные классы имеют доступ только к final переменным?
- Вопрос: Восходящее преобразование и generic
- Играем в компилятор.
- Аргументы методов в Java : pass-by-value or pass-by-reference
- Все о String.intern()







очень понимаю, что было потрачено много жизненный ресурсов на решение этой проблемы,
но настоятельно рекомендую убрать/заменить нецензурные слова.
Тогда сайт будет восприниматься более серъезней.
Спасибо.
Спасибо за комментарий, обязательно учту
это не решение проблемы...
Возможно, я ж не говорю, что это панацея от всех error 87.
В моем случае, был слишком длинный класспас, который передавался аргументом.
Помогло. Спасибо!
В случае сборки RIM Blackberry помогает bb-ant-tools, задайте атрибут generatesourcelist (Generate list of source files in text file. Set this to true when java returns "CreateProcess error=87" on Windows. Optional, defaults to false.)
http://bb-ant-tools.sourceforge.net/docs#rapc
Отправить комментарий