JavaHotSpot (TM)64-BitServerVM 警告: 忽略 MaxPermSize 选项

在使用 Maven 构建 Java8项目时:

mvn clean package

我得到了这样的信息:

JavaHotSpot (TM)64-BitServerVM 警告: 忽略 MaxPermSize = 128m 选项; 在8.0中删除了支持

如何删除此消息?

407387 次浏览

JDK 8 的兼容性指南指出,在 Java8中,命令行标志 MaxPermSize已被删除。原因是永久生成从热点堆中删除,并移动到本机内存中。 所以为了删除这条消息 编辑 MAVEN _ OPTS环境用户变量:

爪哇7

MAVEN_OPTS -Xmx512m -XX:MaxPermSize=128m

爪哇8

MAVEN_OPTS -Xmx512m

JDK 8 HotSpot JVM现在使用本机内存表示类元数据,称为 元空间

永久的一代已经被移除了。忽略 PermSizeMaxPermSize,如果它们出现在命令行中,则发出警告。

在 JBoss EAP 6.4中,右键单击服务器并在 VM 参数下打开启动配置

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

更新到

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

这能解决你的问题。

-XX:MaxPermSize=size

设置最大永久生成空间大小(以字节为单位)。这个选项在 JDK8中不被推荐,并被 -XX:MaxMetaspaceSize选项所取代。

-XX:PermSize=size

设置分配给永久生成的空间(以字节为单位) ,如果超过这个空间,永久生成将触发垃圾回收。这个选项在 JDK 8中已被弃用,并被 -XX:MetaspaceSize选项所取代。

在 Linux 和 Java8上运行命令行 mvn (版本3.3.3)时,我得到了类似的信息。 通过打开 maven script/$MAVEN-HOME/bin/mvn,找到以下一行

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

默认情况下,$MAVEN _ PROJECTBASEDIR 是您的主目录。 所以有两个地方可以查看,首先是文件 $MAVEN _ PROJECTBASEDIR/。Mvn/jvm.config (如果存在)。其次,查看文件,可能设置了环境变量 MAVEN _ OPTS。候选人档案。巴希尔。Bash _ profile,.Profile 和它们包含的那些文件,例如/etc/profile、/etc/bash.bashrc

我找到了

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

在。 bashrc 在我的系统中,改为

export MAVEN_OPTS="-Xmx512m"

问题解决了

为了解决这个问题,我们刚刚在

独立会议

为了解决这个问题,我们需要执行以下步骤:

  1. 打开 JBoss _ or _ Wildfly bin 文件夹下的 独立战士文件
  2. 在此文件中查找 < em > # JAVA _ HOME 文本。
  3. 删除 #字符并将安装的 JDK 路径设置为 JAVA _ HOME = “ C: Program Files JAVA jdk1.8.0 _ 65” 希望这能解决你的问题 谢谢

对于 Eclipse 用户..。

单击 Run ー > Run configuration ー > are ー > set Alternate JRE for 1.6 or 1.7

以防还有人收到这样的信息。这是因为在运行 maven 项目时添加了 JVM 参数。因为它与 maven 相关,所以您可以在项目中检查 pom.xml文件。

找到这一行 <argLine>...</argLine>,在我的项目中我也有下面的论点

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

您应该将 MaxPermSize参数替换为 -Xms123m -Xmx123m,因为 MaxPermSize已经被弃用,不会对您的 JVM 配置产生任何影响:

<argLine>-Xms512m -Xmx512m  -XX:+TieredCompilation -XX:TieredStopAtLevel=1</argLine>