Ich erhalte die Meldung "Error: Java heap space, java.lang.OutOfMemoryError: Java heap space' beim Kompilieren eines bestehenden Projekts unter OS X (Snow Leopard).
Ich verwende das standardmäßige Java 1.6 64-Bit-SDK und die Standardinstallation von Ant (beide werden als Teil des Betriebssystems bereitgestellt).
Ich habe dieses Problem bereits in anderen Betriebssystemumgebungen festgestellt und löse es normalerweise, indem ich ANT_OPTS verwende, um den zugewiesenen Speicher zu erhöhen, aber das scheint nicht zu funktionieren.
Ich habe versucht, ANT_OPTS wie folgt einzustellen:
In der gleichen Shell habe ich Folgendes eingegeben
export ANT_OPTS="-Xmx1024m' ant build
Ich habe auch versucht, den Wert in ~/.bash_profile zu setzen (den ich ausgelagert habe, um sicherzustellen, dass er abgeholt wird).
Ich habe das Speicherproblem schließlich gelöst, indem ich den Speicher in der javac-Aufgabe in meinem Ant-Skript erhöht habe, aber das ist nicht ideal (ich würde viel lieber ANT_OPTS verwenden).
Wie kann ich den Heap-Speicher vergrößern, wenn ich Ant unter OS X ausführe?
UPDATE:
Es scheint, dass ich mich geirrt habe und dass ANT_OPTS als Ausnahmeregelung erkannt wird. Das Problem ist, dass ich die javac Aufgabe forken (wie von bkail unten beschrieben).
Das führt mich zu meiner nächsten Frage. Warum geht dem JAVAC-Prozess unter OSX ständig der Speicher aus, während derselbe Code/das gleiche Skript unter Linux problemlos funktioniert? Was ist an der Standard-OSX-Installation von Java anders, so dass zusätzlicher Speicher zugewiesen werden muss?
0 Stimmen
Ist der Mac 64-Bit und der Linux-Rechner 32-Bit? Das könnte der Grund für die höhere Speichernutzung auf dem Mac sein.