it-swarm.com.de

Wie kann ich die Warnung "Java Hot Spot MaxPermSize" deaktivieren, wenn Sie IntelliJ oder Play verwenden?

Diese Warnung wird angezeigt, wenn ich IntelliJ starte oder play in einem Play -Projekt ausführt.

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

Wie mache ich es weg?

Die answer zu derselben Frage für Maven sagt, dass die Option MaxPermSize aus der Umgebungsvariable MAVEN_OPTS entfernt werden soll. Ich habe keine MAVEN_OPTS-Variable auf meinem Rechner. Ich kann mir vorstellen, dass es eine ähnliche sbt-Einstellung gibt, aber ich weiß nicht, wo es ist.

Ich sehe viele Erklärungen über die Änderung von Java, aber ich sehe keine Tipps, wie diese Warnung bei der Arbeit mit Scala verschwinden kann.

OS X 10.9.4. Scala 2.11.1. sbt 0,13,5


Bearbeiten

Im Grunde frage ich: "Wo sind alle Orte auf meinem System, die MaxPermSize festgelegt werden könnten?"

Ich habe keinen sbt-launch-lib.bash auf meinem Rechner.

Ich habe MaxPermSize Scala-> JVM Parameters von IntelliJ gefunden. Wenn Sie das entfernen, verschwindet die Warnung in IntelliJ.


Bearbeiten

Geänderte Frage Ich habe ursprünglich gesagt, dass dies für SBT passiert ist. (Einige der folgenden Kommentare beziehen sich auf dieses Problem.) Dies war ein Fehler meinerseits. Beim Ausführen von SBT passiert dies nicht, nur wenn ich play von der Befehlszeile aus ausführe.

Ist es ein bekannter Fehler für Play, den Parameter MaxPermSize anzugeben? Gibt es eine Möglichkeit, damit aufzuhören?


Bearbeiten

Ich denke nicht, dass dies ein Duplikat von PermGen-Eliminierung in jdk 8 ist. In diesem Thread wird beschrieben, warum die Warnung angezeigt wird. Es wird jedoch nicht erläutert, wie Sie die IntelliJ- oder Play-Konfigurationen ändern, damit sie nicht mehr angezeigt wird.

27
W.P. McNeill

Dies warnt, dass Sie immer noch davon ausgehen, dass dieses Flag, das Sie übergeben, funktionieren wird. Dieses Flag wurde jedoch ab 1.8 entfernt. In jvm 1.8 gibt es keinen Perm-Space

um diese Warnung zu entfernen, entfernen Sie -XX:MaxPermSize von allen Stellen, an denen er von sbt an jvm übergeben wird

Unter Windows müssen Sie beispielsweise nur die Datei C:\Program Files (x86)\sbt\conf\sbtconfig.txt bearbeiten und bearbeiten, um sie zu ändern, um den XX:MaxPermSize=256M zu kommentieren. Zum Beispiel: 

-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

Ich weiß, es ist eine alte Frage, aber wenn Sie IntelliJ verwenden, lautet dieser Eintrag:

-XX:MaxPermSize=512m

kann auch in einer dieser Dateien gefunden werden:

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

Vielleicht könnte das Entfernen dort helfen?

6
f1v3

Für jeden, der dies unter OS X/macOS erlebt, war die Lösung für mich das Menü IntelliJ IDEA > Preferences..., dann Other Settings > SBT und das Feld VM parameters zu löschen.

Wie auch im Folgenden erwähnt, gibt es in IntelliJ IDEA > Preferences... unter Build, Execution, Deployment > Built Tools > sbt noch einen weiteren Parametersatz.

4
Brideau

In IntelliJ enthalten einige Standardausführungskonfigurationen bestimmte Parameter VM.

Zu den Standardparametern für die SBT-Task-Ausführungskonfiguration VM gehört beispielsweise die Einstellung "-XX: MaxPermSize = 256M".

Sie können diesen Eintrag einfach aus der Standardkonfiguration oder aus Ihrer benutzerdefinierten Ausführungskonfiguration entfernen. Es werden keine weiteren Warnungen angezeigt.

2
durp

Sbt liest die Einstellungen von $SBT_LAUNCHER_HOME/sbt-launch-lib.bash

Sie können das folgende Fragment finden und -XX:MaxPermSize=${perm}m entfernen.

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. Unter Windows ist es in conf/sbtconfig.txt.

2
lpiepiora

Diese Warnung wird möglicherweise angezeigt, wenn IntelliJ das Projekt lädt. Sie können diese Warnung beenden, indem Sie in den Voreinstellungen> "VM-Parameter" alle -XX:MaxPermSize-Werte aus den SBT-Einstellungen entfernen.

Die tatsächlichen JVM-Optionen, die beim Ausführen einer Play2-App in IntelliJ verwendet werden, scheinen nicht in der Benutzeroberfläche verfügbar zu sein. Sie können die workspace.xml-Datei jedoch manuell bearbeiten. Suchen Sie nach der Einstellung play2JvmOptions:

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

und entfernen Sie den -XX:MaxPermSize-Wert.

Ob Sie der Meinung sind, dass es sich lohnt, Ihre Workspace.xml für eine Warnung zu verwenden, liegt bei Ihnen ...

1
David Keen

Eigentlich ist es sehr einfach, dass Java-8 MaxPermSize veraltet hat. Sie müssen lediglich Ihre vmoptions-Datei bearbeiten und ersetzen

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

Nur um diese Diskussion zu ergänzen. Mein sbt-Befehl wurde zu einem Skript. Ich habe das Skript einfach bearbeitet und die MaxPermSize-Referenz entfernt.

Ich weiß, dass es hier ums Spielen geht, aber die Suche nach sbt und MaxPermSize endet hier.

0
anoneironaut

Die Option -XX: MaxPermSize ist in der "build" -Datei im Installationsordner des Play Frameworks angegeben. Durch das Entfernen des MaxPermSize-Eintrags wurde die Warnung beim Ausführen des Wiedergabeprojekts entfernt. 

zB: /play-2.2.1/framework/build

0
Ramadas