Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I make the "Java Hot Spot MaxPermSize" warning go away when using IntelliJ or Play?

I get this warning when I launch IntelliJ or run play in a Play project.

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

How do I make it go away?

The answer to the same question for Maven says to remove MaxPermSize option from the MAVEN_OPTS environment variable. I don't have a MAVEN_OPTS variable set on my machine. I imagine there is some similar sbt setting, but I don't know where it is.

I see lots of explanations about what the change to Java is, but I don't see any tips for how to make this warning go away when working with Scala.

OS X 10.9.4. Scala 2.11.1. sbt 0.13.5


Edit

Basically what I'm asking is "Where are all the places on my system MaxPermSize might get set?"

I don't have a sbt-launch-lib.bash set on my machine.

I did find MaxPermSize Scala->JVM Parameters option of IntelliJ. Removing that makes the warning go away in IntelliJ.


Edit

Changed question. I originally said that this happened for SBT. (Some of the comments below address this.) This was an error on my part. It doesn't happen when I run SBT, only when I run play from the command line.

Is it a known bug for Play to specify the MaxPermSize parameter? Is there a way to make it stop?


Edit

I don't think this is a duplicate of PermGen elimination in jdk 8. That thread describes why the warning appears but does not explain how to change the IntelliJ or Play configurations to make it no longer appear.

like image 502
W.P. McNeill Avatar asked Jul 11 '14 21:07

W.P. McNeill


People also ask

What is MaxPermSize in Java?

What it does. The -XX:MaxPermSize option specifies the maximum size for the permanent generation, which is the memory holding objects such as classes and methods. Properly tuning this parameter can reduce memory issues in the permanent generation.


3 Answers

This warns that you are still assuming that this flag you are passing in would work but this flag has been removed from 1.8 onward, there is no perm space in jvm 1.8 onwards

so to get rid of this warning remove -XX:MaxPermSize from all the places which passes it to jvm from sbt

For example, on Windows you just need to edit the file C:\Program Files (x86)\sbt\conf\sbtconfig.txt and edit to change it to comment the XX:MaxPermSize=256M. For example:

-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
like image 142
jmj Avatar answered Oct 17 '22 14:10

jmj


I know it's an old question, but if you're using IntelliJ, this entry:

-XX:MaxPermSize=512m

can also be found in one of these files:

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

Maybe removing it there could help?

like image 36
f1v3 Avatar answered Oct 17 '22 15:10

f1v3


For anybody experiencing this on OS X/macOS, the solution for me was to go to the menu IntelliJ IDEA > Preferences..., then to Other Settings > SBT and clear the field VM parameters.

As akauppi also mentioned below, there is also another set of parameters in IntelliJ IDEA > Preferences... under Build, Execution, Deployment > Built Tools > sbt

like image 4
Brideau Avatar answered Oct 17 '22 13:10

Brideau