Je reçois ce message lors de la construction de mon projet
java.lang.OutOfMemoryError: espace de tas Java
Comment augmenter l'espace de tas, j'ai 8 Go ou RAM, il est impossible que maven consomme autant, j'ai trouvé ceci http://vikashazrati.wordpress.com/2007/07/26/quicktip-how-to-increase-the -java-heap-memory-for-maven-2-on-linux / comment le faire sous Linux, mais je suis sous Windows 7. Comment puis-je changer l'espace de tas Java sous Windows?
Réponses:
La variable d'environnement à définir est
MAVEN_OPTS
, par exempleMAVEN_OPTS=-Xmx1024m
. Lamaxmem
configuration dans le pom ne s'applique que lorsque vous définissez le plug-in du compilateur pourjavac
créer une nouvelle machine virtuelle Java. Sinon, le plugin s'exécute dans la même VM que Maven et donc dans la mémoire passée en ligne de commande via leMAVEN_OPTS
.Pour définir MAVEN_OPTS sous Windows 7:
-Xmx1024m
(ou plus)Ouvrez une nouvelle fenêtre de commande et exécutez
mvn
.la source
Si vous manquez d'espace de tas pendant l'exécution de test JUnit infaillible (ou de sécurité intégrée), la modification de MAVEN_OPTS peut ne pas vous aider. J'ai continué à essayer différentes configurations dans MAVEN_OPTS sans succès jusqu'à ce que je trouve ce message qui corrige le problème.
Fondamentalement, les JUnits se retrouvent dans leur propre environnement et ignorent les paramètres de MAVEN_OPTS. Vous devez configurer surefire dans votre pom pour ajouter plus de mémoire pour les JUnits.
J'espère que cela peut faire gagner du temps à quelqu'un d'autre!
Edit: Copier la solution du blog de Keith Chapman juste au cas où le lien se romprait un jour:
Mise à jour (31/05/2017): Merci à @johnstosh pour l'avoir signalé - le surefire a un peu évolué depuis que j'ai publié cette réponse. Voici un lien vers leur documentation et un exemple de code mis à jour (la ligne arg est toujours la partie importante pour cette question):
la source
Ce devrait être la même commande, sauf SET au lieu de EXPORT
la source
C:\my_project>MAVEN_OPTS=-Xmx512m 'MAVEN_OPTS' is not recognized as an internal or external command, operable program or batch file.
Sur Mac: au lieu de
JAVA_OPTS
etMAVEN_OPTS
, utilisez plutôt _JAVA_OPTIONS. Cela marche!la source
Après avoir essayé d'utiliser la variable MAVEN_OPTS sans succès, je suis tombé sur ce site qui a fonctionné pour moi. Donc, tout ce que j'avais à faire était d'ajouter -Xms128m -Xmx1024m aux options par défaut de la VM et cela fonctionnait.
Pour les modifier dans Eclipse, accédez à Fenêtre -> Préférences -> Java -> JRE installés. Sélectionnez le JRE / JDK vérifié et cliquez sur Modifier.
la source
Sur Windows:
Ajoutez une variable d'environnement (dans les variables système et utilisateur, j'ai un problème étrange, qu'il récupère la variable de divers endroits, donc je les ajoute dans les deux).
Nommez-le MAVEN_OPTS.
La valeur sera:
-Xms1024m -Xmx3000m -XX:MaxPermSize=1024m -XX:+CMSClassUnloadingEnabled
Les nombres peuvent être différents, faites-les par rapport à la taille de votre mémoire.
J'ai eu ce problème et cela l'a résolu, rien d'autre!
la source
Cela a fonctionné - Pour changer dans Eclipse, allez dans Fenêtre -> Préférences -> Java -> JRE installés. Sélectionnez le JRE / JDK vérifié et cliquez sur Modifier.
Arguments VM par défaut = -Xms128m -Xmx1024m
la source
Vous recherchez 2 options pour
java
:Placez-les dans votre appel en ligne de commande de l'
java
exécutable, comme ceci:Gardez à l'esprit que vous souhaiterez peut-être que les tailles de segment de départ et maximale soient identiques, en fonction de l'application, car cela évite de redimensionner le tas pendant l'exécution (ce qui peut prendre du temps dans les applications qui doivent être réactives). Le redimensionnement du tas peut impliquer de déplacer de nombreux objets et de refaire la comptabilité.
Pour les projets de tous les jours, faites-en ce que vous pensez être assez bon. Profil pour obtenir de l'aide.
la source