2011-12-20 16 views
54

Kiedy wykonuję projekt Intellij, ciągle otrzymuję komunikat o błędzie pamięci.Jak mogę dać kompilatorowi Intellijmu więcej miejsca na sterty?

już zwiększyłem rozmiar sterty w idea.vmoptions:

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

Ale ja wciąż dostać ten błąd:

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 

Czego mi brakuje?

Odpowiedz

75

Aktualna wersja:

Settings (Preferences na Mac) | Build, Execution, Deployment | Compiler | Rozmiar sterty procesowej budowy.

Starsze wersje:

Settings (Preferences na Mac) | Compiler | Java Compiler | Maksymalny rozmiar sterty.

Kompilator działa domyślnie w oddzielnej maszynie JVM, dlatego ustawienia sterty IDEA ustawione w idea.vmoptions nie mają wpływu na kompilator.

+6

I jest wymagane ponowne uruchomienie później :) – cgl

+3

Właściwie to nie – jarandaf

+5

Wiem, że to trochę nie na temat, ale może uratować komuś niektóre włosy jeśli natkną się tego. Miałem ten sam problem, ale moje wynikało z tego, że robiłem 'mvn install' w IntelliJ. Rozwiązaniem było zmodyfikowanie 'Ustawienia | Maven | Runner | ** Opcje VM ** "Musiałem sprawdzić wszystkie inne ustawienia, dopóki nie mam tego prawa. Mam nadzieję, że to komuś pomaga. – FuriousGeorge

3

GWT w IntelliJ 12

FWIW, byłem coraz podobny błąd z mojej aplikacji GWT podczas 'produkcji | Przebuduj projekt ".

Zostało to spowodowane przez Intellij wykonujący pełną kompilację GWT, której nie lubiłem, ponieważ jest to również bardzo długotrwały proces.

Wyłączyłem kompilację GWT, wyłączając pola wyboru modułu pod "Struktura projektu | Fasety GWT ".

Alternatywnie istnieje również ustawienie "kompilator maksymalny rozmiar sterty" w tej lokalizacji.

0

W moim przypadku błąd został spowodowany przez niewystarczającą ilość pamięci przydzieloną do "testu" cyklu życia maven. Został on ustalony przez dodanie <argLine>-Xms3512m -Xmx3512m</argLine> do:

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

Dzięki @crazycoder za wskazanie tego (a także, że nie jest powiązany z IntelliJ; w tym przypadku).

If your tests are forked, they run in a new JVM that doesn't inherit Maven JVM options. Custom memory options must be provided via the test runner in pom.xml, refer to Maven documentation for details, it has very little to do with the IDE.

-3

Jest

idea64.exe

rozrusznik w

IntelliJ IDEA 13.1.5\bin

więc można zająć więcej miejsca.

+0

Ta odpowiedź jest w pewnym stopniu poprawna, chociaż nie jest w kontekście powyższego pytania. idea64.exe daje więcej pamięci permgen, użyj idea64.exe, jeśli używasz 64-bitowego systemu operacyjnego. Okazało się, że użyteczny program coz 32bit idea.exe ulegał awarii, gdy zabrakło pamięci mem podczas kompilacji. –

56

Od wersji IntelliJ 2016 to Plik | Ustawienia | Kompilacja, wykonanie, wdrożenie | Kompilator | Utwórz wielkość sterty procesowej.

enter image description here

1

miałem podobny problem z Ant kompilacji (rozpoczęte przez strony od pomysłu GUI). W moim przypadku istniało właściwe rozwiązanie, aby kliknąć prawym przyciskiem myszy zadanie Ant, wybrać właściwości i ustawić wyższą wartość na "Maksymalna przestrzeń sterty (Mb):" i "Maksymalna ilość miejsca na stos (Mb):" pola wejściowe.

enter image description here

Powiązane problemy