Quando si crea un progetto Java 8 con Maven:
mvn clean package
Ricevo questo messaggio:
Avviso VM server Java HotSpot (TM) a 64 bit: ignorando l'opzione MaxPermSize = 128m; il supporto è stato rimosso in 8.0
Come rimuovere questo messaggio?
Quando si crea un progetto Java 8 con Maven:
mvn clean package
Ricevo questo messaggio:
Avviso VM server Java HotSpot (TM) a 64 bit: ignorando l'opzione MaxPermSize = 128m; il supporto è stato rimosso in 8.0
Come rimuovere questo messaggio?
Risposte:
La Guida alla compatibilità per JDK 8 afferma che in Java 8 il flag della riga di comando MaxPermSize
è stato rimosso. Il motivo è che la generazione permanente è stata rimossa dall'heap dell'hotspot e spostata nella memoria nativa. Quindi per rimuovere questo messaggio modifica la variabile utente dell'ambiente MAVEN_OPTS :
Java 7
MAVEN_OPTS -Xmx512m -XX:MaxPermSize=128m
Java 8
MAVEN_OPTS -Xmx512m
sudo gedit ~/.profile
, aggiungi la riga dalla risposta lì e salva il file.
sudo
modificare un file nella tua cartella home? Mi sembra una pratica molto strana.
Il JDK 8 JVM HotSpot sta ora utilizzando la memoria nativo per la rappresentazione dei metadati di classe e si chiama Metaspace .
La generazione permanente è stata rimossa. Gli PermSize
e MaxPermSize
vengono ignorati e viene emesso un avviso se sono presenti sulla riga di comando.
-XX:MaxPermSize=size
Imposta la dimensione massima dello spazio di generazione permanente (in byte). Questa opzione è stata deprecata in JDK 8 e sostituita -XX:MaxMetaspaceSize
dall'opzione.
-XX:PermSize=size
Imposta lo spazio (in byte) allocato alla generazione permanente che attiva una garbage collection se viene superata. Questa opzione è stata deprecata in JDK 8 e sostituita -XX:MetaspaceSize
dall'opzione.
MaxPermGen
con i MaxMetaSpaceSize
quali è fuorviante, poiché i loro ruoli si sono praticamente invertiti. Prima dello spazio dei metadati della classe Java 8 risiedeva in PermGen che era limitato da 32/64 MB e MaxPerGen
veniva utilizzato per aumentarlo . A partire da Java 8, tuttavia, PermGen non esiste più e lo spazio dei metadati della classe è illimitato, quindi le MaxMetaspace
dimensioni vengono effettivamente utilizzate per ridurlo . Per ulteriori informazioni, consultare: stackoverflow.com/a/31463972/67824
In JBoss EAP 6.4, fai clic con il pulsante destro del mouse sul server e apri la configurazione di avvio nell'argomento VM che troverai
{-Dprogram.name=JBossTools: jboss-eap" -server -Xms1024m -Xmx1024m -XX:MaxPermSize=256m}
aggiornalo a
{-Dprogram.name=JBossTools: JBoss 6.4" -server -Xms512m -Xmx512m}
questo risolverà il tuo problema.
Ho ricevuto un messaggio simile quando eseguivo la riga di comando mvn (versione 3.3.3) su Linux con Java 8. Aprendo maven script / $ MAVEN-HOME / bin / mvn, ho trovato la seguente riga
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
Dove $ MAVEN_PROJECTBASEDIR per impostazione predefinita è la tua home directory. Quindi due posti in cui puoi dare un'occhiata, il primo è il file $ MAVEN_PROJECTBASEDIR / .mvn / jvm.config se esiste. In secondo luogo, esaminare i file che potrebbero impostare la variabile di ambiente MAVEN_OPTS. I file candidati sono .bashrc, .bash_profile, .profile e quei file inclusi da loro come / etc / profile, /etc/bash.bashrc
Ho localizzato
export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=256m"
in .bashrc nel mio sistema, cambiarlo in
export MAVEN_OPTS="-Xmx512m"
problema risolto
nel caso in cui qualcuno riceva ancora questo tipo di messaggio. Succede perché aggiungi l'argomento JVM durante l'esecuzione del progetto maven. Poiché è correlato a Maven, puoi controllare il tuo pom.xml
file sul tuo progetto.
trova questa riga <argLine>...</argLine>
, sul mio progetto ho anche argomento di seguito
<argLine>-Xmx1024m -XX:MaxPermSize=512m -XX:+TieredCompilation -XX:TieredStopAtLevel=1</argLine>
dovresti sostituire l' MaxPermSize
argomento come -Xms123m -Xmx123m
, poiché MaxPermSize
è già deprecato e non avrà alcun effetto sulla tua configurazione JVM:
<argLine>-Xms512m -Xmx512m -XX:+TieredCompilation -XX:TieredStopAtLevel=1</argLine>
Per risolvere questo problema, abbiamo appena impostato il percorso JDK installato
standalone.conf
file che si trova nella cartella bin di JBoss \ Wildfly Server. Per risolvere questo, facciamo i seguenti passi:
Per gli utenti di Eclipse ...
Fare clic su Esegui -> Esegui configurazione -> sono -> imposta Alternativo JRE per 1.6 o 1.7