Beim Erstellen eines Java 8-Projekts mit Maven:
mvn clean package
Ich bekomme diese Nachricht:
Java HotSpot (TM) 64-Bit-Server-VM-Warnung: Option MaxPermSize = 128m wird ignoriert; Unterstützung wurde in 8.0 entfernt
Wie entferne ich diese Nachricht?
Antworten:
Das Kompatibilitätshandbuch für JDK 8 besagt, dass in Java 8 das Befehlszeilenflag
MaxPermSize
entfernt wurde. Der Grund dafür ist, dass die permanente Generierung aus dem Hotspot-Heap entfernt und in den nativen Speicher verschoben wurde. Um diese Nachricht zu entfernen, bearbeiten Sie die MAVEN_OPTS- Umgebungsbenutzervariable:Java 7
Java 8
quelle
sudo gedit ~/.profile
fügen Sie dort die Zeile aus der Antwort hinzu und speichern Sie die Datei.sudo
eine Datei in Ihrem Home-Ordner bearbeiten? Scheint mir eine sehr seltsame Übung zu sein.Die JDK 8 HotSpot JVM verwendet jetzt nativen Speicher für die Darstellung von Klassenmetadaten und heißt Metaspace .
Die permanente Generation wurde entfernt. Die
PermSize
undMaxPermSize
werden ignoriert und eine Warnung wird ausgegeben, wenn sie in der Befehlszeile vorhanden sind.quelle
Legt die maximale Größe des permanenten Generierungsbereichs (in Byte) fest. Diese Option wurde in JDK 8 nicht mehr unterstützt und durch die
-XX:MaxMetaspaceSize
Option ersetzt.Legt den der permanenten Generierung zugewiesenen Speicherplatz (in Byte) fest, der eine Speicherbereinigung auslöst, wenn diese überschritten wird. Diese Option wurde in JDK 8 nicht mehr unterstützt und durch die
-XX:MetaspaceSize
Option ersetzt.quelle
MaxPermGen
mitMaxMetaSpaceSize
der irreführend ist, da ihre Rollen praktisch umgekehrt haben. Vor der Java 8-Klasse befand sich der Metadatenbereich in PermGen, der auf 32/64 MB begrenzt war, undMaxPerGen
wurde verwendet, um ihn zu erhöhen . Ab Java 8 ist PermGen jedoch nicht mehr verfügbar und der Speicherplatz für Klassenmetadaten ist unbegrenzt. Daher wird dieMaxMetaspace
Größe tatsächlich verwendet, um ihn zu verringern . Weitere Informationen finden Sie unter: stackoverflow.com/a/31463972/67824Klicken Sie in JBoss EAP 6.4 mit der rechten Maustaste auf den Server und öffnen Sie die Startkonfiguration unter dem VM-Argument, das Sie finden
aktualisieren Sie es auf
Dies wird Ihr Problem lösen.
quelle
Beim Ausführen der Befehlszeile mvn (Version 3.3.3) unter Linux mit Java 8 wurde eine ähnliche Meldung angezeigt. Durch Öffnen des Maven-Skripts / $ MAVEN-HOME / bin / mvn wurde die folgende Zeile gefunden
Wobei $ MAVEN_PROJECTBASEDIR standardmäßig Ihr Home-Verzeichnis ist. Zwei Stellen, die Sie sich ansehen können, ist die Datei $ MAVEN_PROJECTBASEDIR / .mvn / jvm.config, falls vorhanden. Schauen Sie sich zweitens Dateien an, in denen möglicherweise die Umgebungsvariable MAVEN_OPTS eingerichtet ist. Kandidatendateien sind .bashrc, .bash_profile, .profile und die darin enthaltenen Dateien wie / etc / profile, /etc/bash.bashrc
Ich habe gefunden
Ändern Sie es in .bashrc in meinem System in
Problem gelöst
quelle
für den Fall, dass jemand diese Art von Nachricht noch erhält. Dies liegt daran, dass Sie beim Ausführen eines Maven-Projekts ein JVM-Argument hinzufügen. Da es mit maven zusammenhängt, können Sie Ihre
pom.xml
Datei in Ihrem Projekt überprüfen .Finden Sie diese Zeile
<argLine>...</argLine>
, auf meinem Projekt habe ich auch unten ArgumentSie sollten das
MaxPermSize
Argument als ersetzen-Xms123m -Xmx123m
, daMaxPermSize
es bereits veraltet ist und keine Auswirkungen auf Ihre JVM-Konfiguration hat:quelle
Um dieses Problem zu lösen, haben wir gerade den installierten JDK-Pfad festgelegt
Datei, die sich im Ordner bin von JBoss \ Wildfly Server befindet. Um dies zu lösen, führen wir die folgenden Schritte aus:
quelle
Für Eclipse-Benutzer ...
Klicken Sie auf Ausführen -> Konfiguration ausführen -> sind -> Alternative JRE für 1.6 oder 1.7 festlegen
quelle