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?

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.


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


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


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


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.


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.


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


-3

Tam jest

idea64.exe

starter w

IntelliJ IDEA 13.1.5 \ bin

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


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.