Lors de la construction d'un projet Java 8 avec Maven:
mvn clean package
Je reçois ce message:
Avertissement de la VM du serveur 64 bits Java HotSpot (TM): ignorer l'option MaxPermSize = 128m; le support a été supprimé dans la version 8.0
Comment supprimer ce message?
Réponses:
Le Guide de compatibilité pour JDK 8 indique que dans Java 8, l'indicateur de ligne de commande
MaxPermSize
a été supprimé. La raison est que la génération permanente a été supprimée du tas de hotspot et déplacée vers la mémoire native. Donc, pour supprimer ce message, modifiez la variable utilisateur d'environnement MAVEN_OPTS :Java 7
Java 8
la source
sudo gedit ~/.profile
, ajoutez la ligne à partir de la réponse et enregistrez le fichier.sudo
un fichier dans votre dossier personnel? Cela me semble une pratique très étrange.La JVM HotSpot JDK 8 utilise désormais la mémoire native pour la représentation des métadonnées de classe et s'appelle Metaspace .
La génération permanente a été supprimée. le
PermSize
etMaxPermSize
sont ignorés et un avertissement est émis s'ils sont présents sur la ligne de commande.la source
Définit la taille maximale de l'espace de génération permanente (en octets). Cette option était obsolète dans JDK 8 et remplacée par l'
-XX:MaxMetaspaceSize
option.Définit l'espace (en octets) alloué à la génération permanente qui déclenche un garbage collection s'il est dépassé. Cette option était obsolète dans JDK 8 et remplacée par l'
-XX:MetaspaceSize
option.la source
MaxPermGen
avecMaxMetaSpaceSize
qui est trompeur, car leurs rôles se sont pratiquement inversés. Avant Java 8, l'espace de métadonnées de classe résidait dans PermGen, limité à 32/64 Mo, etMaxPerGen
était utilisé pour l' augmenter . Cependant, à partir de Java 8, PermGen n'existe plus et l'espace de métadonnées de classe est illimité, donc laMaxMetaspace
taille est en fait utilisée pour le réduire . Pour plus d'informations, voir: stackoverflow.com/a/31463972/67824Dans JBoss EAP 6.4, faites un clic droit sur le serveur et ouvrez la configuration de lancement sous l'argument VM que vous trouverez
mettre à jour
cela résoudra votre problème.
la source
J'ai reçu un message similaire lors de l'exécution de la ligne de commande mvn (version 3.3.3) sur Linux avec Java 8. En ouvrant le script maven / $ MAVEN-HOME / bin / mvn, j'ai trouvé la ligne suivante
Où $ MAVEN_PROJECTBASEDIR par défaut est votre répertoire personnel. Vous pouvez donc jeter un œil à deux endroits, le premier est le fichier $ MAVEN_PROJECTBASEDIR / .mvn / jvm.config s'il existe. Deuxièmement, regardez les fichiers qui peuvent éventuellement configurer la variable d'environnement MAVEN_OPTS. Les fichiers candidats sont .bashrc, .bash_profile, .profile et les fichiers inclus par eux tels que / etc / profile, /etc/bash.bashrc
J'ai localisé
dans .bashrc dans mon système, changez-le en
problème résolu
la source
au cas où quelqu'un recevrait encore ce genre de message. Cela se produit parce que vous ajoutez un argument JVM lors de l'exécution du projet maven. Parce qu'il est lié à maven, vous pouvez vérifier votre
pom.xml
fichier sur votre projet.trouver cette ligne
<argLine>...</argLine>
, sur mon projet j'ai aussi l'argument ci-dessousvous devez remplacer l'
MaxPermSize
argument comme-Xms123m -Xmx123m
, car ilMaxPermSize
est déjà obsolète et ne prendra aucun effet sur votre configuration JVM:la source
Pour résoudre ce problème, nous venons de définir le chemin JDK installé dans
fichier qui se trouve dans le dossier bin de JBoss \ Wildfly Server. Pour résoudre ce problème, nous procédons comme suit:
la source
Pour les utilisateurs d'Eclipse ...
Cliquez sur Exécuter -> Exécuter la configuration -> sont -> définissez Alternate JRE pour 1.6 ou 1.7
la source