Я столкнулся с java.lang.OutOfMemoryError: Ошибка PermGen при компиляции проекта с помощью ant под Linux с jdk 1.5.0_11. тот же проект компилируется под windows без проблем.
Обычно это относится к MaxPermSize, выделенному для JVM. Ираклий Надареишвили имеет одно из лучших объяснений ошибок PermGen и руководство по настройке Java HotSpot VMOptions (например, -XX: MaxPermSize = 128M)
В этом случае я быстро сузил проблему до конкретного bpelc ant task
<bpelc input="${build.dir}/bpel/bpel.xml"
out="${build.dir}/output" rev="${version}" home="${bpel.home}"/>
Теперь я не думаю, что bpelc принимает элемент compilerarg, такой как javac:
<javac srcdir="${src.dir}"
destdir="${classes.dir}"
classpathref="libraries">
<compilerarg value="-XX:MaxPermSize=128M"/>
</javac>
Так как исправить ошибку для задачи bpelc? Лучшее решение, которое я придумала, - это установить переменную окружения ANT_OPTS . Это, кажется, избежало проблемы до настоящего времени.
export ANT_OPTS=-XX:MaxPermSize=128m
Может ли кто-нибудь пролить больше света? Это верное исправление?