【问题标题】:PermGen space - maven m2e tomcat7PermGen 空间 - maven m2e tomcat7
【发布时间】:2014-06-12 08:19:04
【问题描述】:

我尝试用 maven 部署对 Tomcat 的战争。 当我以 Maven 目标 tomcat7: run 运行时。 tomcat好像启动maven连接数据库,那我有错的权利:

java.lang.OutOfMemoryError: PermGen space

我使用 m2e、eclipse 和 tomcat。 我尝试在 POM.xml 中添加:

<configuration>
  <systemProperties>
    <JAVA_OPTS>-Xms256m -Xmx512m -XX:MaxPermSize=256m</JAVA_OPTS>
  </systemProperties>
</configuration>  

并且在maven的JRE参数中:

-Xms256m -Xmx512m

但是什么也没发生..

你有什么想法吗?解决该错误的另一种方法?

【问题讨论】:

  • 验证 catalina 是否实际使用 -XX:MaxPermSize=256m 命令行参数运行,如果不增加它应该可以工作:)

标签: java eclipse maven tomcat out-of-memory


【解决方案1】:

如果你使用 eclipse IDE 而不是使用它,你可以更改 VM 参数

double click on the server > open Lunch Configuration > Arguments > VM Arguments

并在您的 VM Arguments 字段中附加以下两行

-Xms256m -Xmx1024m -XX:+DisableExplicitGC -Dcom.sun.management.jmxremote
-XX:PermSize=256m -XX:MaxPermSize=512m

一定能解决你的问题

【讨论】:

  • 欢迎:) !!很有用的东西
【解决方案2】:

在配置文件中添加这些参数 -

MAVEN_OPTS=-Xms512m -Xmx1024m

或者,如果您直接从命令行运行,则可以使用命令提示符设置它们 -

set MAVEN_OPTS=-Xms512m -Xmx1024m

【讨论】:

  • 请问什么配置文件?上下文.xml? pom.xml?
  • Maven 配置文件将是 m2.conf 或 settings.xml。首先尝试在命令提示符下应用它。
  • tomcat-文件夹/bin/catalina.sh
  • pertest-Xms256m -Xmx512m this for pom.xml
  • -Xms256m -Xmx512m 也跑了^^
【解决方案3】:

如果您在命令提示符下工作: http://cwiki.apache.org/confluence/display/MAVEN/OutOfMemoryError

如果您在 IDE 中工作: 服务器 > VM 参数并添加以下内容

-Xmx2048m -XX:MaxPermSize=1024m

【讨论】:

  • 很好的答案,有多种可能的解决方案!与其链接到explanation,不如考虑一个链接以及该解决方案中相关信息的摘要。如果您在 code 周围使用反引号`,您的解决方案也可以变得更具可读性
猜你喜欢
  • 1970-01-01
  • 2016-03-26
  • 2020-07-16
  • 2011-09-04
  • 2013-03-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多