Ant – java.lang.OutOfMemoryError

Beim Kompilieren großer Projekte mit Ant kommt es schnell zu OutOfMemoryErrors:

[javac] The system is out of resources.
[javac] Consult the following stack trace for details.
[javac] java.lang.OutOfMemoryError

BUILD FAILED

Ant braucht mehr Speicher. Da Ant selbst ein Java Programm ist, muss die heap size des Ant Java Prozesses vergrößert werden durch den JVM Parameter -Xmx[mb]M. Ant benutzt den Inhalt der Systemvariable ANT_OPTS als JVM Parameter. Vor dem Aufruf von Ant definiert man zum Beispiel: ANT_OPTS=-Xmx512M.

Unter Linux geht das am einfachsten durch das Anlegen der Datei

/etc/ant.conf

mit dem Inhalt:

ANT_OPTS=-Xmx512M

Ant liest den Inhalt der Datei und setzt so die Variable ANT_OPTS. Die Datei gilt für alle Benutzer.

512 MB habe ich gewählt zum Kompilieren eines Projektes mit ca. 5000 Klassen.

  1. Guter Tipp. Ich hatte ANT_OPTS bisher nur unter Windows benötigt.
    Ich habe jetzt bei mir ANT_OPTS=-XX:MaxPermSize=128m drin (wie vorher in Windows) und der OutOfMemoryError ist weg. Keine Ahnung was der Unterschied zu -Xmx128M ist.

  2. Vielen Dank … das war genau mein Problem … ich hab meiner ant.bat nun folgende Zeile hinzugefügt:

    set ANT_OPTS=“-Xmx1024m -XX:MaxPermSize=128m“ %ANT_OPTS%

    und nu gehts … vielen Dank!!
    Christian

  1. No trackbacks yet.

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: