es wegen der konstanten Klasse Laden ist.
Java speichert den Klassenbyte-Code und alle Konstanten (z. B. String-Konstanten) im permanenten Heap, die standardmäßig nicht als Garbage Collections erfasst werden (was in den meisten Situationen Sinn macht, da Klassen nur einmal während der Lebensdauer einer Anwendung geladen werden).
In Anwendungen, die oft Klassen während eines ganzen Lebens zu laden, die sind:
- Web- und Anwendungsserver während der heißen Umschichtung;
- IDEs bei der Ausführung entwickelter Anwendungen (jedes Mal, wenn Sie in Netbeans auf die Schaltfläche "Ausführen" klicken oder die Eclipse-Klasse erneut laden, werden die Klassen Ihrer Anwendung neu geladen);
- usw. Dieses Verhalten ist nicht korrekt, weil ein Heap voll schließlich füllt.
Sie müssen permanente Heap Garbage Collection aktivieren, um diesen Fehler zu vermeiden.
I Optionen verwenden
-XX:MaxPermSize=256M
-XX:+CMSClassUnloadingEnabled
-XX:+CMSPermGenSweepingEnabled
(meine Finsternis gestoppt 3.4 zu werfen "java.lang.OutOfMemoryError: PermGen space
" so ist es auch mit Netbeans funktionieren soll).
bearbeiten: beachten Sie, dass nur für Netbeans setzen Sie diese Optionen in: [Netbeans installation]\etc\netbeans.conf
Sie sollten diese Optionen mit -J
und fügen Sie sie in netbeans_default_options
(siehe Kommentare in netbeans.conf
für weitere Informationen) préfixe.
siehe auch http://stackoverflow.com/questions/717550/java-lang-outofmemoryerror-java-heap-space-with-netbeans – Steen
Warum aktualisieren Sie nicht auf eine aktuellere Version von NetBeans? 6.5 ist wirklich alt. –
@a_horse_with_no_name: Wie ist diese Frage. Ich habe es vor über drei Jahren gefragt. –