Jak zapewnić kompilatorowi Intellij więcej miejsca na stosie?

106

Kiedy tworzę projekt Intellij, ciągle otrzymuję następujące informacje o błędzie pamięci.

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

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

Ale nadal otrzymuję 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?

Michael
źródło

Odpowiedzi:

157

Obecna wersja:

Settings( Preferencesna Macu) | Build, Execution, Deployment| Compiler| Zbuduj rozmiar sterty procesu .

Starsza wersja:

Settings( Preferencesna Macu) | Compiler| Java Compiler| Maksymalny rozmiar sterty .

Kompilator działa domyślnie w oddzielnej JVM, więc ustawienia sterty IDEA, które ustawisz idea.vmoptions, nie mają wpływu na kompilator.

CrazyCoder
źródło
10
A potem wymagany jest restart :)
cgl
9
Właściwie tak nie jest
jarandaf
11
Wiem, że to trochę nie na temat, ale może zaoszczędzić komuś trochę włosów, jeśli się z tym spotka. Miałem ten sam problem, ale mój wynikał z czasów, gdy robiłem mvn installw IntelliJ. Rozwiązaniem było zmodyfikowanie Settings | Maven | Runner | **VM Options** musiałem wypróbować wszystkie inne ustawienia, dopóki nie udało mi się to zrobić. Mam nadzieję, że to komuś pomoże.
FuriousGeorge
14
@ clankill3r spróbuj Settings| Compiler| Build process heap size.
CrazyCoder
5
W nowszych wersjach Intellij (moja to 2016.1.3) ten parametr nazywa się „Rozmiar sterty procesu budowania (MB)” i można go znaleźć w „Ustawienia | Kompilacja, wykonanie, wdrożenie | Kompilator”.
tomger
95

Od IntelliJ 2016 lokalizacja to File | Ustawienia | Kompilacja, wykonanie, wdrożenie | Kompilator | Zbuduj rozmiar sterty procesu .

wprowadź opis obrazu tutaj

Broda
źródło
2
Zmieniłem go na 2000 MB, ale nadal nie działał.
R11G
5

Miałem podobny problem z kompilacją Anta (uruchomioną ręcznie z GUI IDEA). W moim przypadku dobrym rozwiązaniem było kliknięcie prawym przyciskiem myszy zadania Ant, wybranie właściwości i ustawienie wyższej wartości w polach wejściowych „Maksymalna przestrzeń sterty (Mb):” i „Maksymalna przestrzeń stosu (Mb):”.

wprowadź opis obrazu tutaj

Jan Němec
źródło
5

Aby rozwiązać ten problem, wykonaj poniższe czynności:

1). W inteli Idź do File> Setting Option i Search for Vm Option W polu Vm Option for Importer podaj wartość -Xmx512m. Opcje ustawień Intelij

2). Idź do Control Pannel Wybierz Widok według: Duże ikony, a następnie Idź do Java Pojawi się jedno okno podręczne z nazwą Panel sterowania java, a następnie przejdź do Opcje maszyny wirtualnej Java Java

wybierz opcję widoku. opcje widoku java

W środowisku wykonawczym Java Ustawienie pass Parametry czasu wykonywania jako -Xmx1024m .

3). Jeśli powyższe opcje nie działają, zmień rozmiar pom.xml

Jimy Ten
źródło
Dlaczego usunąłeś ten link? Boisz się tego, co się tutaj stało ?
Glorfindel,
Podałem poprawną odpowiedź i przyznałem kredyt innej stronie internetowej, ale nadal widzę dwie głosy przeciw mojej odpowiedzi. a odpowiedź, której udzieliłem, jest praktycznie poprawna, z którą się spotkałem i rozwiązałem.
Jimy Ten
daj mi znać, jeśli mogę przekazać kredyt innej witrynie.
Jimy Ten,
2
Ten tymczasowy głos przeciw był ode mnie. Jeśli chcesz przyznać kredyt, podaj link do dokładnej strony, na której znalazłeś informacje, a nie do listy samouczków.
Frenzy Li,
3

GWT w Intellij 12

FWIW, otrzymałem podobny błąd z moją aplikacją GWT podczas ' Build | Odbuduj projekt ”.

Było to spowodowane tym, że Intellij wykonał pełną kompilację GWT, co mi się nie podobało, ponieważ jest to również bardzo długi proces.

Wyłączyłem kompilację GWT, wyłączając pola wyboru modułów w sekcji „ Struktura projektu | Fasety | GWT ”.

Alternatywnie istnieje również ustawienie „ Maksymalny rozmiar sterty kompilatora ” w tej lokalizacji.

Peter L.
źródło
0

W moim przypadku błąd był spowodowany niewystarczającą ilością pamięci przydzielonej do „testowego” cyklu życia mavena. Naprawiono to, dodając <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 to związane z IntelliJ; w tym przypadku).

Jeśli testy są rozwidlone, działają w nowej JVM, która nie dziedziczy opcji JVM Maven. Niestandardowe opcje pamięci muszą być dostarczane za pośrednictwem programu uruchamiającego testy w pom.xml. Szczegółowe informacje można znaleźć w dokumentacji Mavena, ma ona bardzo niewiele wspólnego z IDE.

Neil
źródło
0

Napotkałem błąd „java.lang.OutOfMemoryError: przestrzeń sterty Java” podczas budowania projektu za pomocą polecenia instalacji maven.

Udało mi się go pozbyć, zmieniając ustawienia Maven Runner.

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

Jaison
źródło
-3

Tam jest

idea64.exe

starter w

IntelliJ IDEA 13.1.5 \ bin

dzięki czemu możesz zająć więcej miejsca.

Julian Dehne
źródło
Ta odpowiedź jest do pewnego stopnia poprawna, chociaż nie w kontekście powyższego pytania. idea64.exe zapewnia więcej pamięci permgen, użyj idea64.exe, jeśli masz 64-bitowy system operacyjny. Okazało się to przydatne, ponieważ 32-bitowy idea.exe ulegał awarii, gdy podczas kompilacji zabrakło pamięci.
Adil H. Raza