使用IntelliJ或Play时,如何使“Java Hot Spot MaxPermSize”警告消失?
当我启动IntelliJ或在Play项目中运行play
时,我收到此警告。
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=512M; support was removed in 8.0
我怎么让它消失?
Maven的相同问题的答案是从MAVEN_OPTS
环境变量中删除MaxPermSize
选项。 我的机器上没有设置MAVEN_OPTS
变量。 我想有一些类似的sbt设置,但我不知道它在哪里。
我看到了有关Java变化的许多解释 ,但是在使用Scala时,我没有看到任何有关如何使此警告消失的提示。
OS X 10.9.4。 Scala 2.11.1。 sbt 0.13.5
编辑
基本上我要问的是“我的系统MaxPermSize
上的所有位置都可以设置在哪里?”
我的机器上sbt-launch-lib.bash
设置sbt-launch-lib.bash
。
我确实找到了IntelliJ的MaxPermSize
Scala-> JVM Parameters选项。 删除它会使IntelliJ中的警告消失。
编辑
改变了问题。 我最初说这发生在SBT。 (下面的一些评论解决了这个问题。)这是我的错误。 只有当我从命令行运行play
时,才会运行SBT。
是Play的已知错误指定MaxPermSize
参数吗? 有没有办法让它停止?
编辑
我认为这不是jdk 8中PermGen消除的重复。 该线程描述了警告出现的原因,但未解释如何更改IntelliJ或Play配置以使其不再显示。
这警告你仍然假设你传入的这个标志会起作用但是这个标志已经从1.8开始移除了,jvm 1.8以后没有烫发空间
所以要摆脱这个警告从所有从sbt传递到jvm的地方删除-XX:MaxPermSize
例如,在Windows上,您只需编辑文件C:\Program Files (x86)\sbt\conf\sbtconfig.txt
并编辑以将其更改为注释XX:MaxPermSize=256M
。 例如:
-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
我知道这是一个老问题,但是如果你使用IntelliJ,这个条目:
-XX:MaxPermSize=512m
也可以在以下文件中找到:
PATH_TO_INTELLIJ\bin\idea.exe.vmoptions PATH_TO_INTELLIJ\bin\idea64.exe.vmoptions
也许删除它可能会有所帮助?
对于在OS X / macOS上遇到这种情况的人,我的解决方案是进入IntelliJ IDEA > Preferences...
菜单,然后进入Other Settings > SBT
并清除现场VM parameters
。
正如akauppi在下面提到的,在Build, Execution, Deployment > Built Tools > sbt
下的IntelliJ IDEA > Preferences...
还有另一组参数
Sbt从$SBT_LAUNCHER_HOME/sbt-launch-lib.bash
读取设置。
您可以找到以下片段,并删除-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。 在Windows上,它位于conf/sbtconfig.txt
。
在IntelliJ中,某些默认运行配置包括特定的VM参数。
例如,默认SBT任务运行配置VM参数包括设置“-XX:MaxPermSize = 256M”
您只需从默认条目或自定义运行配置中删除此条目,就不会再显示警告。
当IntelliJ加载项目时,您可能会看到此警告。 您可以通过从首选项>“VM参数”中的SBT设置中删除任何-XX:MaxPermSize
值来停止此警告。
在IntelliJ中运行Play2应用程序时使用的实际JVM选项似乎没有在界面中公开,但您可以手动编辑workspace.xml
文件。 查找play2JvmOptions
设置:
并删除-XX:MaxPermSize
值。
您是否认为为了发出警告而值得搞乱您的workspace.xml取决于您…
实际上它非常简单的JAVA-8已经弃用了MaxPermSize,你需要做的只是编辑你的vmoptions文件并替换
-XX:MaxPermSize by -XX:MaxMetaspaceSize=128m
-XX:MaxPermSize选项在play framework安装文件夹中的“build”文件中指定。 删除MaxPermSize条目在运行播放项目时删除了警告。
例如:/play-2.2.1/framework/build
只是为了加入这个讨论。 我的sbt
命令最终成为一个脚本,我只是编辑了脚本并删除了MaxPermSize
引用。
我知道这是关于游戏的,但搜索sbt和MaxPermSize最终会在这里结束。
- 打开intellij安装位置 – > bin
- 编辑idea.vmoptions或idea64.vmoptions文件
- 删除-XX:MaxPermSize = xxm
- 保存文件,然后重新启动IDEA