Comment puis-je donner au compilateur Intellij plus d'espace de tas?

106

Lorsque je crée un projet Intellij, j'obtiens les erreurs de mémoire suivantes.

J'ai déjà augmenté la taille de mon tas en idea.vmoptions:

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

Mais j'obtiens toujours cette erreur:

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

Qu'est-ce que je rate?

Michael
la source

Réponses:

157

Version actuelle:

Settings( Preferencessur Mac) | Build, Execution, Deployment| Compiler| Taille du tas de processus de construction .

Versions plus anciennes:

Settings( Preferencessur Mac) | Compiler| Java Compiler| Taille maximale du tas .

Le compilateur s'exécute dans une JVM distincte par défaut, de sorte que les paramètres de tas IDEA que vous définissez idea.vmoptionsn'ont aucun effet sur le compilateur.

CrazyCoder
la source
10
Et un redémarrage est nécessaire après :)
cgl
9
En fait, ce n'est pas le cas
jarandaf
11
Je sais que c'est un peu hors sujet, mais cela pourrait sauver des cheveux à quelqu'un s'il rencontre cela. J'avais le même problème, mais le mien venait du moment où je faisais un mvn installdans IntelliJ. La solution était de modifier le Settings | Maven | Runner | **VM Options** Je dois avoir essayé tous les autres paramètres jusqu'à ce que j'aie raison. J'espère que ça aide quelqu'un.
FuriousGeorge
14
@ clankill3r essayez Settings| Compiler| Build process heap size.
CrazyCoder
5
Pour les versions plus récentes d'Intellij (la mienne est 2016.1.3), ce paramètre est appelé «Taille du tas de processus de construction (Mo)» et peut être trouvé dans «Paramètres | Construction, exécution, déploiement | Compilateur».
tomger
95

Depuis IntelliJ 2016, l'emplacement est File | Paramètres | Construction, exécution, déploiement | Compilateur | Taille du tas de processus de construction .

entrez la description de l'image ici

Menton
la source
2
Je l'ai changé en 2000 Mo mais cela n'a toujours pas fonctionné pour moi.
R11G
5

J'ai eu un problème similaire avec Ant build (démarré à la main à partir de l'interface graphique IDEA). Dans mon cas, il y avait la bonne solution pour faire un clic droit sur la tâche Ant, choisir les propriétés et définir une valeur plus élevée sur les champs de saisie "Espace de tas maximum (Mo):" et "Espace de pile maximum (Mo):".

entrez la description de l'image ici

Jan Němec
la source
5

Pour résoudre ce problème, suivez les étapes ci-dessous:

1). Dans inteli Allez dans Fichier> Option de réglage et recherchez l'option Vm Dans le champ Option Vm pour l'importateur, donnez la valeur -Xmx512m. Options de paramétrage Intelij

2). Accédez au panneau de contrôle Sélectionnez Afficher par: Grandes icônes puis allez à Java une fenêtre d'invite apparaîtra avec le nom panneau de contrôle java, puis accédez aux options de la machine virtuelle Java Java

sélectionnez l'option d'affichage. options d'affichage java

Dans l'environnement d' exécution Java, les paramètres passent les paramètres d' exécution comme -Xmx1024m .

3). Si les options ci-dessus ne fonctionnent pas, modifiez la taille de pom.xml

Jimy Ten
la source
Pourquoi avez-vous modifié ce lien? Avez-vous peur de ce qui s'est passé ici ?
Glorfindel
J'ai donné la bonne réponse et j'ai donné du crédit à un autre site Web, mais je peux toujours voir deux votes négatifs à ma réponse et la réponse que j'ai donnée est pratiquement correcte, ce que j'ai fait face et résolu.
Jimy Ten
s'il vous plaît laissez-moi savoir si je peux donner du crédit à un autre site Web.
Jimy Ten
2
Ce vote défavorable temporaire venait de moi. Si vous voulez donner du crédit, veuillez créer un lien vers la page exacte où vous avez trouvé les informations, pas une liste de tutoriels.
Frenzy Li
3

GWT dans Intellij 12

FWIW, j'obtenais une erreur similaire avec mon application GWT pendant ' Build | Projet de reconstruction ».

Cela a été causé par Intellij faisant une compilation GWT complète que je n'aimais pas car c'est aussi un processus très long.

J'ai désactivé la compilation GWT en désactivant les cases à cocher du module sous « Structure du projet | Facettes | GWT ».

Il existe également un paramètre « Taille maximale du tas du compilateur » à cet emplacement.

Peter L
la source
0

Dans mon cas, l'erreur a été causée par la mémoire insuffisante allouée au cycle de vie "test" de maven. Il a été corrigé en ajoutant <argLine>-Xms3512m -Xmx3512m</argLine>à:

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

Merci @crazycoder pour l'avoir signalé (et aussi que ce n'est pas lié à IntelliJ; dans ce cas).

Si vos tests sont fourchus, ils s'exécutent dans une nouvelle JVM qui n'hérite pas des options Maven JVM. Les options de mémoire personnalisées doivent être fournies via le lanceur de test dans pom.xml, reportez-vous à la documentation Maven pour plus de détails, cela a très peu à voir avec l'EDI.

Neil
la source
0

J'étais confronté à l'erreur "java.lang.OutOfMemoryError: Java heap space" lors de la construction de mon projet à l'aide de la commande maven install.

J'ai pu m'en débarrasser en modifiant les paramètres de maven runner.

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

Jaison
la source
-3

Il y a un

idea64.exe

démarreur dans

IntelliJ IDEA 13.1.5 \ bin

afin que vous puissiez adresser plus d'espace.

Julian Dehne
la source
Cette réponse est dans une certaine mesure correcte, bien qu'elle ne soit pas dans le contexte de la question ci-dessus. idea64.exe vous donne plus de mémoire permgen, utilisez idea64.exe si vous êtes sur un système d'exploitation 64 bits. J'ai trouvé utile coz 32bit idea.exe plantait lorsqu'il manquait de mémoire pendant la construction.
Adil H.Raza