146

When building a Java 8 project with Maven:

mvn clean package

I get this message:

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

How to remove this message?

Paolo Forgia
  • 6,572
  • 8
  • 46
  • 58
Boris
  • 22,667
  • 16
  • 50
  • 71

8 Answers8

174

Compatibility Guide for JDK 8 says that in Java 8 the command line flag MaxPermSize has been removed. The reason is that the permanent generation was removed from the hotspot heap and was moved to native memory. So in order to remove this message edit MAVEN_OPTS Environment User Variable:

Java 7

MAVEN_OPTS -Xmx512m -XX:MaxPermSize=128m

Java 8

MAVEN_OPTS -Xmx512m
Boris
  • 22,667
  • 16
  • 50
  • 71
22

The JDK 8 HotSpot JVM is now using native memory for the representation of class metadata and is called Metaspace.

The permanent generation has been removed. The PermSize and MaxPermSize are ignored and a warning is issued if they are present on the command line.

Yousha Aleayoub
  • 4,532
  • 4
  • 53
  • 64
Martin Seeler
  • 6,874
  • 3
  • 33
  • 45
  • 1
    This only indirectly answers the question... The answer is "remove the flags to remove the warning". As the [insightful comment](https://stackoverflow.com/questions/22634644/java-hotspottm-64-bit-server-vm-warning-ignoring-option-maxpermsize#comment54226301_32365351) by @ohad-schneider reveals, there is no _one_ single replacement for them. – conny May 22 '20 at 05:18
13
-XX:MaxPermSize=size

Sets the maximum permanent generation space size (in bytes). This option was deprecated in JDK 8, and superseded by the -XX:MaxMetaspaceSize option.

-XX:PermSize=size

Sets the space (in bytes) allocated to the permanent generation that triggers a garbage collection if it is exceeded. This option was deprecated in JDK 8, and superseded by the -XX:MetaspaceSize option.

Yousha Aleayoub
  • 4,532
  • 4
  • 53
  • 64
mama...
  • 149
  • 1
  • 2
  • 17
    I think this was downvoted because it implies that you should switch previous uses of `MaxPermGen` with `MaxMetaSpaceSize` which is misleading, since their roles have practically reversed. Before Java 8 class metadata space resided in PermGen which was limited by 32/64MB, and `MaxPerGen` was used to *increase* it. Starting from Java 8 however, PermGen is no more and class metadata space is unlimited, so `MaxMetaspace` size is actually used to *decrease* it. For more information see: http://stackoverflow.com/a/31463972/67824 – Ohad Schneider Oct 19 '15 at 09:32
8

In JBoss EAP 6.4, right click on the server and open launch configuration under VM argument you will find

{-Dprogram.name=JBossTools: jboss-eap" -server -Xms1024m -Xmx1024m -XX:MaxPermSize=256m}

update it to

{-Dprogram.name=JBossTools: JBoss 6.4" -server -Xms512m -Xmx512m}

this will solve your problem.

Ondra Žižka
  • 43,948
  • 41
  • 217
  • 277
Amit
  • 89
  • 1
  • 1
1

I got similar message when running command line mvn (version 3.3.3) on Linux with Java 8. By opening maven script /$MAVEN-HOME/bin/mvn, found the following line

MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"

Where $MAVEN_PROJECTBASEDIR by default is your home directory. So two places you can take a look, first is file $MAVEN_PROJECTBASEDIR/.mvn/jvm.config if it exists. Secondly look at files possibly set up the environment variable MAVEN_OPTS. Candidate files are .bashrc, .bash_profile, .profile and those files included by them such as /etc/profile, /etc/bash.bashrc

I located

export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=256m"

in .bashrc in my system, change it to

export MAVEN_OPTS="-Xmx512m"

issue resolved

Jonathan L
  • 9,552
  • 4
  • 49
  • 38
1

in case some one still get this kind of message. Its happen because you add JVM argument when running maven project. Because it is related with maven you can check your pom.xml file on your project.

find this line <argLine>...</argLine>, on my project I also have argument below

<argLine>-Xmx1024m -XX:MaxPermSize=512m -XX:+TieredCompilation -XX:TieredStopAtLevel=1</argLine>

you should replace MaxPermSize argument as -Xms123m -Xmx123m, since MaxPermSize is already deprecated and wont take any effect on your JVM config :

<argLine>-Xms512m -Xmx512m  -XX:+TieredCompilation -XX:TieredStopAtLevel=1</argLine>
satrioaditya
  • 124
  • 1
  • 10
-1

Please to solve this problem we just have set installed JDK path in

standalone.conf

file which under the bin folder of JBoss\Wildfly Server. To solve this we do the following steps:

  1. Open the standlone.conf file which under JBoss_or_wildfly\bin folder
  2. Within this file find for #JAVA_HOME text.
  3. Remove the # character and set your installed JDK path as JAVA_HOME="C:\Program Files\Java\jdk1.8.0_65" Hope this will solve your problem Thanks
Salahin Rocky
  • 415
  • 9
  • 18
-5

For Eclipse users...

Click Run —> Run configuration —> are —> set Alternate JRE for 1.6 or 1.7