How do I make the "Java Hot Spot MaxPermSize" warning go away when using IntelliJ or Play?
Solution 1
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
Solution 2
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?
Solution 3
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
Solution 4
Sbt reads the settings from $SBT_LAUNCHER_HOME/sbt-launch-lib.bash
.
You can find following fragment, and remove -XX:MaxPermSize=${perm}m
.
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. On windows it's in conf/sbtconfig.txt
.
Solution 5
In IntelliJ, some default run configurations include specific VM paramters.
For example, the default SBT Task run configuration VM parameters include the setting "-XX:MaxPermSize=256M"
You can simply remove this entry from the default or from your custom run config and no more warnings will appear.
W.P. McNeill
Updated on April 04, 2020Comments
-
W.P. McNeill about 4 years
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 theMAVEN_OPTS
environment variable. I don't have aMAVEN_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.