Вызов компилятора install4j из ant приводит к ошибкам PermGen OutOfMemory

Я столкнулся с ситуацией, когда install4j v4.2.8 работает нормально и генерирует установщики при использовании графического интерфейса и при вызове install4jc из командной строки, но завершается неудачно со следующим сообщением при вызове через задачу install4j ant:

install4j: compilation failed. Reason: java.lang.OutOfMemoryError: PermGen space

Используя visualvm, я определил, что задача ant разветвляет отдельную JVM, которая перестает работать, когда использование PermGen достигает около 88 МБ. Документы по задаче install4j ant ничего не говорят о возможности передачи аргументов виртуальной машины (например, -XX:MaxPermSize=256MB) через разветвленную JVM, но мне интересно, будет ли это или что-то похожее подходящим вариантом.

1 ответ

Решение

Вы можете настроить параметры виртуальной машины для компилятора командной строки в файле [каталог установки install4j]/bin/install4j.vmoptions. Просто увеличьте значение -Xmx и добавьте параметр VM -XX:MaxPermSize VM.

До установки версии 5.0.7 была ошибка, связанная с включением относительных файлов в файлы.vmoptions. Для этих более старых версий удалите include to install4j.vmoptions в install4jc.vmoptions и добавьте туда параметры VM.

Другие вопросы по тегам