web-dev-qa-db-fra.com

Comment faire disparaître l'avertissement "Java Hot Spot MaxPermSize" lors de l'utilisation d'IntelliJ ou de Play?

Je reçois cet avertissement lorsque je lance IntelliJ ou que je lance play dans un projet Play .

Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=512M; support was removed in 8.0

Comment puis-je le faire partir?

Le answer à la même question pour Maven dit de supprimer l’option MaxPermSize de la variable d’environnement MAVEN_OPTS. Je n'ai pas de variable MAVEN_OPTS définie sur ma machine. J'imagine qu'il existe un réglage similaire pour les sbt, mais je ne sais pas où il se trouve.

Je vois beaucoup de explications sur la modification apportée à Java, mais je ne vois aucun conseil sur la façon de faire disparaître cet avertissement lorsque vous travaillerez avec Scala.

OS X 10.9.4. Scala 2.11.1. 0,13.5


Modifier

En gros, ce que je demande, c’est "Où se trouvent tous les endroits sur mon système MaxPermSize peuvent être définis?"

Je n'ai pas de sbt-launch-lib.bash défini sur ma machine.

J'ai trouvé l'option MaxPermSize Scala-> JVM Parameters d'IntelliJ. Supprimer cela fait disparaître l'avertissement dans IntelliJ.


Modifier

Question modifiée. J'ai d'abord dit que cela s'était passé pour SBT. (Certains des commentaires ci-dessous répondent à cela.) C'était une erreur de ma part. Cela ne se produit pas lorsque j'exécute SBT, mais uniquement lorsque je lance play à partir de la ligne de commande.

Est-ce un bug connu pour Play de spécifier le paramètre MaxPermSize? Y a-t-il un moyen d'arrêter ça?


Modifier

Je ne pense pas que ceci soit une copie de Suppression de PermGen dans jdk 8 . Ce fil explique pourquoi l'avertissement apparaît mais n'explique pas comment changer les configurations d'IntelliJ ou de Play pour qu'il n'apparaisse plus.

27
W.P. McNeill

Cela vous avertit que vous supposez toujours que le drapeau que vous passez est efficace, mais ce drapeau a été supprimé à partir de la version 1.8, il n'y a pas d'espace permanent dans la version 1.8

afin de se débarrasser de cet avertissement, supprimez -XX:MaxPermSize de tous les endroits qui le transmettent à jvm à partir de sbt

Par exemple, sous Windows, il vous suffit de modifier le fichier C:\Program Files (x86)\sbt\conf\sbtconfig.txt et de le modifier pour le commenter avec le XX:MaxPermSize=256M. Par exemple: 

-Xmx512M

#Commented parameter as it is deprecated on jvm 1.8 onwards
#-XX:MaxPermSize=256m

-XX:ReservedCodeCacheSize=128m

# Set the extra SBT options
-Dsbt.log.format=true
19
Jigar Joshi

Je sais que c'est une vieille question, mais si vous utilisez IntelliJ, cette entrée:

-XX:MaxPermSize=512m

peuvent également être trouvés dans l'un de ces fichiers:

PATH_TO_INTELLIJ\bin\idea.exe.vmoptions
PATH_TO_INTELLIJ\bin\idea64.exe.vmoptions

Peut-être que le retirer pourrait aider?

6
f1v3

Pour tous ceux qui en ont fait l'expérience sur OS X/macOS, la solution pour moi était d'aller au menu IntelliJ IDEA > Preferences..., puis à Other Settings > SBT et d'effacer le champ VM parameters.

Comme akauppi également mentionné ci-dessous, il existe également un autre ensemble de paramètres dans IntelliJ IDEA > Preferences... sous Build, Execution, Deployment > Built Tools > sbt

4
Brideau

Dans IntelliJ, certaines configurations d'exécution par défaut incluent des paramètres VM spécifiques.

Par exemple, les paramètres de configuration d'exécution de la tâche SBT par défaut VM incluent le paramètre "-XX: MaxPermSize = 256M"

Vous pouvez simplement supprimer cette entrée de la valeur par défaut ou de votre configuration personnalisée et aucun avertissement ne s'affichera.

2
durp

Sbt lit les paramètres à partir de $SBT_LAUNCHER_HOME/sbt-launch-lib.bash

Vous pouvez trouver le fragment suivant et supprimer -XX:MaxPermSize=${perm}m.

get_mem_opts () {
  local mem=${1:-1024}
  local perm=$(( $mem / 4 ))
  (( $perm > 256 )) || perm=256
  (( $perm < 1024 )) || perm=1024
  local codecache=$(( $perm / 2 ))

  echo "-Xms${mem}m -Xmx${mem}m -XX:MaxPermSize=${perm}m -XX:ReservedCodeCacheSize=${codecache}m"
}

PS. Sous Windows, c'est dans conf/sbtconfig.txt.

2
lpiepiora

Vous pouvez voir cet avertissement lorsque IntelliJ charge le projet. Vous pouvez arrêter cet avertissement en supprimant les valeurs -XX:MaxPermSize des paramètres SBT dans Préférences> "Paramètres de machine virtuelle".

Les options JVM utilisées lors de l'exécution d'une application Play2 dans IntelliJ ne semblent pas être exposées dans l'interface, mais vous pouvez modifier votre fichier workspace.xml manuellement. Recherchez le paramètre play2JvmOptions:

<setting name="play2JvmOptions" value="-Xms512M -Xmx1024M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256M" />

et supprimez la valeur -XX:MaxPermSize.

Si vous pensez que cela vaut la peine de jouer avec votre fichier workspace.xml pour un avertissement, c'est à vous de décider ...

1
David Keen

En réalité, sa très grande simplicité, Java-8 a rendu obsolète MaxPermSize. Il vous suffit de modifier votre fichier vmoptions et de le remplacer

-XX:MaxPermSize by -XX:MaxMetaspaceSize=128m
1
Amit

Juste pour ajouter à cette discussion. Ma commande sbt a fini par être un script. J'ai simplement édité le script et supprimé la référence MaxPermSize.

Je sais que cela concerne le jeu, mais les recherches sur sbt et MaxPermSize aboutissent ici.

0
anoneironaut

L'option -XX: MaxPermSize est spécifiée dans le fichier "build" du dossier d'installation de play framework. La suppression de l'entrée MaxPermSize a supprimé l'avertissement lors de l'exécution du projet de lecture. 

par exemple: /play-2.2.1/framework/build

0
Ramadas