Wie kann ich dem Intellij-Compiler mehr Heap-Speicherplatz geben?

106

Wenn ich ein Intellij-Projekt erstelle, wird immer wieder der folgende Speicherfehler angezeigt.

Ich habe meine Heap-Größe bereits erhöht in idea.vmoptions:

-Xms128m
-Xmx2048m
-XX:MaxPermSize=1024m
-XX:ReservedCodeCacheSize=64m
-ea

Aber ich bekomme immer noch diesen Fehler:

Information:The system is out of resources.
Information:Consult the following stack trace for details.
Information:java.lang.OutOfMemoryError: Java heap space
Information:    at com.sun.tools.javac.util.Position$LineMapImpl.build(Position.java:139)
Information:    at com.sun.tools.javac.util.Position.makeLineMap(Position.java:63)
Information:    at com.sun.tools.javac.parser.Scanner.getLineMap(Scanner.java:1105)
Information:    at com.sun.tools.javac.main.JavaCompiler.parse(JavaCompiler.java:512)
Information:    at com.sun.tools.javac.main.JavaCompiler.parse(JavaCompiler.java:550)
Information:    at com.sun.tools.javac.main.JavaCompiler.parseFiles(JavaCompiler.java:804)
Information:    at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:727)
Information:    at com.sun.tools.javac.main.Main.compile(Main.java:353)
Information:    at com.sun.tools.javac.main.Main.compile(Main.java:279)
Information:    at com.sun.tools.javac.main.Main.compile(Main.java:270)
Information:    at com.sun.tools.javac.Main.compile(Main.java:69)
Information:    at com.sun.tools.javac.Main.main(Main.java:54)
Information:    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
Information:    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
Information:    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
Information:    at java.lang.reflect.Method.invoke(Method.java:597)
Information:    at com.intellij.rt.compiler.JavacRunner.main(JavacRunner.java:71)
Information:Compilation completed with 1 error and 0 warnings
Information:1 error
Information:0 warnings
Error:Compiler internal error. Process terminated with exit code 3

Was vermisse ich?

Michael
quelle

Antworten:

157

Aktuelle Version:

Settings( Preferencesauf Mac) | Build, Execution, Deployment| Compiler| Größe des Prozess-Heapspeichers .

Ältere Versionen:

Settings( Preferencesauf Mac) | Compiler| Java Compiler| Maximale Heap-Größe .

Der Compiler wird standardmäßig in einer separaten JVM ausgeführt, sodass die von Ihnen festgelegten IDEA-Heap-Einstellungen idea.vmoptionskeine Auswirkungen auf den Compiler haben.

CrazyCoder
quelle
10
Und ein Neustart ist danach erforderlich :)
cgl
9
Eigentlich ist es nicht
jarandaf
11
Ich weiß, dass dies etwas vom Thema abweicht, aber es könnte jemandem Haare ersparen, wenn er darauf stößt. Ich hatte das gleiche Problem, aber mein Problem stammte aus der Zeit, als ich ein mvn installin IntelliJ machte. Die Lösung bestand darin, das zu ändern. Settings | Maven | Runner | **VM Options** Ich muss jede andere Einstellung dort ausprobiert haben, bis ich diese richtig verstanden habe. Hoffe es hilft jemandem.
FuriousGeorge
14
@ clankill3r try Settings| Compiler| Build process heap size.
CrazyCoder
5
Für neuere Versionen von Intellij (meins ist 2016.1.3) heißt dieser Parameter "Größe des Build-Prozess-Heapspeichers (MB)" und befindet sich unter "Einstellungen | Erstellen, Ausführen, Bereitstellen | Compiler".
Tomger
95

Seit IntelliJ 2016 lautet der Speicherort Datei | Einstellungen | Erstellen, Ausführen, Bereitstellen | Compiler | Größe des Prozess-Heapspeichers .

Geben Sie hier die Bildbeschreibung ein

Kinn
quelle
2
Ich habe es auf 2000 MB geändert, aber es hat bei mir immer noch nicht funktioniert.
R11G
5

Führen Sie die folgenden Schritte aus, um dieses Problem zu beheben.

1). Gehen Sie in inteli zu Datei> Einstellungsoption und suchen Sie nach Vm Option. Geben Sie im Feld Vm Option für Importer den Wert -Xmx512m ein. Intelij Einstellungsoptionen

2). Gehen Sie zu Control Pannel. Wählen Sie Ansicht nach: Große Symbole und dann zu Java. Es wird ein Eingabeaufforderungsfenster mit dem Namen Java Control Pannel angezeigt. Gehen Sie dann zu Java Java VM Options

Ansichtsoption auswählen. Java-Ansichtsoptionen

In der Java-Laufzeitumgebung Einstellungsdurchlauf Laufzeitparameter als -Xmx1024m .

3). Wenn die oben angegebenen Optionen nicht funktionieren, ändern Sie die Größe von pom.xml

Jimy Ten
quelle
Warum haben Sie diesen Link bearbeitet ? Hast du Angst vor dem, was hier passiert ist ?
Glorfindel
Ich habe die richtige Antwort gegeben und eine andere Website gutgeschrieben, aber ich kann immer noch zwei negative Stimmen für meine Antwort sehen. Und die Antwort, die ich gegeben habe, ist praktisch richtig, mit der ich konfrontiert und sie gelöst habe.
Jimy Ten
Bitte lassen Sie mich wissen, ob ich einer anderen Website eine Gutschrift geben kann.
Jimy Ten
2
Diese vorübergehende Ablehnung war von mir. Wenn Sie eine Gutschrift geben möchten, verlinken Sie bitte auf die genaue Seite, auf der Sie die Informationen gefunden haben, nicht auf eine Liste von Tutorials.
Raserei Li
4

Ich hatte ein ähnliches Problem mit Ant Build (von Hand von IDEA GUI gestartet). In meinem Fall gab es die richtige Lösung, um mit der rechten Maustaste auf die Ant-Aufgabe zu klicken, Eigenschaften auszuwählen und einen höheren Wert auf die Eingabefelder "Maximaler Heap-Speicherplatz (Mb):" und "Maximaler Stapelspeicherplatz (Mb):" zu setzen.

Geben Sie hier die Bildbeschreibung ein

Jan Němec
quelle
3

GWT in Intellij 12

FWIW, ich habe während ' Build | einen ähnlichen Fehler mit meiner GWT-Anwendung erhalten Projekt neu erstellen '.

Dies wurde dadurch verursacht, dass Intellij eine vollständige GWT-Kompilierung durchführte, die mir nicht gefiel, da dies ebenfalls ein sehr langwieriger Prozess ist.

Ich habe die GWT-Kompilierung deaktiviert, indem ich die Kontrollkästchen für das Modul unter ' Projektstruktur | deaktiviert habe Facetten | GWT '.

Alternativ gibt es auch an dieser Stelle die Einstellung ' Compiler Maximum Heap Size '.

Peter L.
quelle
0

In meinem Fall wurde der Fehler durch den unzureichenden Speicher verursacht, der dem "Test" -Lebenszyklus von Maven zugeordnet ist. Es wurde behoben durch Hinzufügen <argLine>-Xms3512m -Xmx3512m</argLine>zu:

<pluginManagement>
  <plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.16</version>
        <configuration>
            <argLine>-Xms3512m -Xmx3512m</argLine>

Vielen Dank an @crazycoder für den Hinweis (und auch dafür, dass es nicht mit IntelliJ zusammenhängt; in diesem Fall).

Wenn Ihre Tests gegabelt sind, werden sie in einer neuen JVM ausgeführt, die keine Maven-JVM-Optionen erbt. Benutzerdefinierte Speicheroptionen müssen über den Testläufer in pom.xml bereitgestellt werden. Weitere Informationen finden Sie in der Maven-Dokumentation. Dies hat sehr wenig mit der IDE zu tun.

Neil
quelle
0

Beim Erstellen meines Projekts mit dem Befehl maven install wurde der Fehler "java.lang.OutOfMemoryError: Java-Heapspeicher" angezeigt.

Ich konnte es loswerden, indem ich die Einstellungen der Maven Runner änderte.

Settings| Build, Execution, Deployment| Build Tools| Maven| Runner| VM optionsbis -Xmx512m

Jaison
quelle
-3

Da ist ein

idea64.exe

Starter in

IntelliJ IDEA 13.1.5 \ bin

So können Sie mehr Platz ansprechen.

Julian Dehne
quelle
Diese Antwort ist bis zu einem gewissen Grad richtig, obwohl sie nicht im Zusammenhang mit der obigen Frage steht. idea64.exe bietet Ihnen mehr Permgen-Speicher. Verwenden Sie idea64.exe, wenn Sie ein 64-Bit-Betriebssystem verwenden. Fand es nützlich, weil 32bit idea.exe abstürzte, wenn während des Builds kein Mem mehr vorhanden war.
Adil H. Raza