Come posso dare al compilatore Intellij più spazio nell'heap?


106

Quando realizzo un progetto Intellij, continuo a ricevere il seguente errore di memoria.

Ho già aumentato la dimensione dell'heap in idea.vmoptions:

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

Ma ricevo ancora questo errore:

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

Cosa mi sto perdendo?

Risposte:


157

Versione attuale:

Settings( Preferencessu Mac) | Build, Execution, Deployment| Compiler| Costruisci la dimensione dell'heap del processo .

Versioni precedenti:

Settings( Preferencessu Mac) | Compiler| Java Compiler| Dimensione massima dell'heap .

Il compilatore viene eseguito in una JVM separata per impostazione predefinita, quindi le impostazioni dell'heap IDEA impostate idea.vmoptionsnon hanno alcun effetto sul compilatore.


10
E in seguito è necessario riavviare :)
cgl

9
In realtà non lo è
jarandaf

11
So che questo è leggermente fuori tema, ma potrebbe salvare i capelli a qualcuno se si imbatte in questo. Avevo lo stesso problema, ma il mio derivava da quando stavo facendo un mvn installin IntelliJ. La soluzione è stata modificare la Settings | Maven | Runner | **VM Options** Devo aver provato tutte le altre impostazioni fino a quando non ho ottenuto quella giusta. Spero che aiuti qualcuno.
FuriousGeorge

14
@ clankill3r prova Settings| Compiler| Build process heap size.
CrazyCoder

5
Per le versioni più recenti di Intellij (la mia è 2016.1.3) questo parametro è chiamato "Build process heap size (Mbytes)" e può essere trovato in "Settings | Build, Execution, Deployment | Compiler".
tomger

95

Da IntelliJ 2016, la posizione è File | Impostazioni | Build, esecuzione, distribuzione | Compilatore | Costruisci la dimensione dell'heap del processo .

inserisci qui la descrizione dell'immagine


2
L'ho cambiato a 2000 MB ma ancora non ha funzionato per me.
R11G

5

Ho avuto un problema simile con Ant build (avviato a mano da IDEA GUI). Nel mio caso c'era la soluzione giusta per fare clic con il pulsante destro del mouse sull'attività Ant, scegliere le proprietà e impostare un valore più alto nei campi di input "Maximum heap space (Mb):" e "Maximum stack space (Mb):".

inserisci qui la descrizione dell'immagine


5

Per risolvere questo problema, seguire i passaggi indicati di seguito:

1). In inteli Vai a File> Opzione di impostazione e cerca opzione Vm Nel campo Opzione Vm per importatore dare il valore -Xmx512m. Opzioni di impostazione Intelij

2). Vai al pannello di controllo Seleziona Visualizza per: Icone grandi quindi Vai a Java apparirà una finestra promp con nome pannello di controllo java quindi vai a Opzioni Java VM Java

selezionare l'opzione di visualizzazione. Opzioni di visualizzazione Java

In Java Run time Environment Setting passare Run time Parameters as -Xmx1024m .

3). Se le opzioni sopra indicate non funzionano, modificare la dimensione di pom.xml


Perché hai modificato quel link? Hai paura di quello che è successo qui ?
Glorfindel

Ho dato la risposta corretta e ho dato credito a un altro sito Web, ma posso ancora vedere due voti negativi alla mia risposta. e la risposta che ho dato è praticamente corretta che ho affrontato e risolto.
Jimy Ten

per favore fatemi sapere se posso dare credito a un altro sito web.
Jimy Ten

2
Quel voto negativo temporaneo era da parte mia. Se vuoi dare credito, collega alla pagina esatta in cui hai trovato le informazioni, non a un elenco di tutorial.
Frenzy Li

3

GWT in Intellij 12

FWIW, stavo ricevendo un errore simile con la mia applicazione GWT durante ' Build | Ricostruisci progetto '.

Ciò è stato causato da Intellij che eseguiva una compilazione GWT completa che non mi piaceva perché è anche un processo molto lungo.

Ho disabilitato la compilazione GWT disattivando le caselle di controllo del modulo in " Struttura progetto | Sfaccettature | GWT '.

In alternativa , in quella posizione è presente anche un'impostazione " Dimensione massima dell'heap del compilatore ".


0

Nel mio caso l'errore è stato causato dalla memoria insufficiente allocata al ciclo di vita "test" di maven. È stato risolto aggiungendo <argLine>-Xms3512m -Xmx3512m</argLine>a:

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

Grazie @crazycoder per averlo sottolineato (e anche che non è correlato a IntelliJ; in questo caso).

Se i tuoi test sono biforcati, vengono eseguiti in una nuova JVM che non eredita le opzioni di Maven JVM. Le opzioni di memoria personalizzate devono essere fornite tramite il test runner in pom.xml, fare riferimento alla documentazione di Maven per i dettagli, ha ben poco a che fare con l'IDE.


0

Stavo affrontando l'errore "java.lang.OutOfMemoryError: Java heap space" durante la creazione del mio progetto utilizzando il comando di installazione maven.

Sono stato in grado di sbarazzarmene cambiando le impostazioni del corridore esperto.

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


-3

C'è un

idea64.exe

antipasto

IntelliJ IDEA 13.1.5 \ bin

così puoi indirizzare più spazio.


Questa risposta è in una certa misura corretta, sebbene non sia nel contesto della domanda precedente. idea64.exe ti dà più memoria permgen, usa idea64.exe se sei su un sistema operativo a 64 bit. Ho trovato utile perché idea.exe a 32 bit si bloccava quando si esauriva la memoria durante la compilazione.
Adil H. Raza
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.