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.
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
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?
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.
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.
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
.
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 ...
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
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.
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