Zuallererst habe ich eine Box mit 8 GB RAM, daher bezweifle ich, dass der gesamte Speicher das Problem ist. Diese Anwendung läuft einwandfrei auf Computern mit 6 GB oder weniger.
Ich versuche, 3 GB Speicherplatz mit -Xmx3G unter "VM-Argumente" in Ausführungskonfigurationen in Eclipse zu reservieren.
Jedes Mal, wenn ich versuche, mehr als 1500 MB zu reservieren, wird folgende Fehlermeldung angezeigt: „Bei der Initialisierung der VM ist ein Fehler aufgetreten. Es konnte nicht genügend Speicherplatz für den Objekthaufen reserviert werden “mit -Xmx3G
Was geht hier vor sich?
java
eclipse
jvm
jvm-arguments
user1212731
quelle
quelle
Antworten:
Könnte es sein, dass Sie auf diesem Computer ein 32-Bit-JVM verwenden?
quelle
So beheben Sie das Problem: Gehen Sie zu
Start->Control Panel->System->Advanced(tab)->Environment Variables->System
Ändern Sie dies in Ihren entsprechenden Pfad .
quelle
Dies ist eigentlich kein Eclipse-spezifisches Problem. Es ist ein allgemeines Java-unter-Windows-Problem. Dies liegt daran, wie die JVM unter Windows Speicher zuweist. Es besteht darauf, einen zusammenhängenden Speicherblock zuzuweisen, den Windows häufig nicht bereitstellen kann, selbst wenn genügend separate Blöcke vorhanden sind, um die Zuweisungsanforderung zu erfüllen. Es gibt Dienstprogramme, die versuchen, Windows dabei zu helfen, seinen Speicher zu "defragmentieren", was theoretisch dieser Situation helfen würde. Aber ich habe sie nicht wirklich ernsthaft ausprobiert und kann daher nicht mit ihrer Wirksamkeit sprechen. Eine Sache, die ich manchmal gehört habe, die helfen könnte, ist, Windows neu zu starten und vor dem Starten anderer Apps die Java-App zu starten, die viel Speicher benötigt. Wenn Sie Glück haben, hat Windows seinen Speicherplatz noch nicht fragmentiert, und Java erhält den zusammenhängenden Block, der angefordert wird.
Irgendwo in den Interwebs gibt es weitere technische Erklärungen und Analysen zu diesem Thema, aber ich habe keine Referenzen zur Hand.
Ich habe dies jedoch gefunden, was hilfreich aussieht: https://stackoverflow.com/a/497757/639520
quelle
Erstens kann die JRE von 32 Bit nicht mehr ~ 1,5 GB RAM verwenden. Wenn Sie also mehr wollen, verwenden Sie eine 64-Bit-JRE.
Zweitens, wenn eine neue JVM gestartet wird, summiert dies die -Xmx-Eigenschaft aller ausgeführten JVM und prüft, ob auf dem System noch genügend Speicher vorhanden ist, um mit ihrem eigenen -Xmx ausgeführt zu werden. Wenn dies nicht ausreicht, tritt der Fehler auf.
quelle
Ich habe Liferay mit dem Tomcat-Server von Eclipse IDE verwendet. Ich hatte den gleichen Fehler beim Klicken auf den Serverstart. Doppelklicken Sie auf den Server von Eclipse. Es öffnet sich die Seite Serverübersicht. Aktualisierte Speicherargumente von -Xmx1024m -XX: MaxPermSize = 256m auf -Xmx512m -XX: MaxPermSize = 256m. Dann hat es bei mir funktioniert.
quelle
Stellen Sie sicher, dass Eclipse tatsächlich dieselbe JVM ausführt, von der Sie glauben, dass sie ausgeführt wird. Wenn Sie Java jemals in Ihrem Webbrowser verwenden, ist wahrscheinlich auch eine 32-Bit-Version im Umlauf, die möglicherweise Vorrang hat, wenn sie in letzter Zeit installiert oder aktualisiert wird.
Um absolut sicher zu sein, empfehle ich, diese beiden Zeilen oben zu Ihrer
eclipse.ini
Datei hinzuzufügen :... wo sich auf meinem Computer
C:/Java/jdk1.6.0_27/bin
die 64-Bit-JVM befindet, die ich kenne. Stellen Sie sicher, dass derbin
Ordner dort ist.(Als Bonus können Sie unter Windows 7 auch die Registerkarte "anheften", weshalb ich dies für meinen eigenen Gebrauch tun musste.)
quelle
eclipse.ini
Seite zu aktualisieren : wiki.eclipse.org/…Dies ist das Problem der Heap-Größe. Bearbeiten Sie Ihre
.bat
(Batch-Datei). Möglicherweise wird die Heap-Größe 1024 angezeigt. Ändern Sie sie in 512. Dann sollte es funktionieren.quelle
Ich hatte auch das gleiche Problem bei der Verwendung von Eclipse, das 32-Bit und die von ihm verwendete JVM 64-Bit war. Als ich die Eclipse an 32-Bit-JVM weitergeleitet habe, hat es funktioniert
quelle
Setzen Sie einfach das
#
Symbolorg.gradle.jvmargs=-Xmx1536m
in gradle.properties vorquelle
Wahrscheinlich versuchen Sie sowieso falsche Optionen. Ich habe einen ähnlichen Fehler mit dem unterstützenden Fehlerprotokoll erhalten:
In meinem Fall unterstützte die Software Java 8 noch nicht (das Skript verwendete alte JVM-Argumente), aber ich hatte standardmäßig Java 8.
quelle
Einer der Gründe für dieses Problem ist, dass für den Start von Tomcat kein Speicher verfügbar ist. Versuchen Sie, die unerwünschte laufende Software aus Windows zu löschen und Eclipse und Tomcat neu zu starten.
quelle