繁体   English   中英

Maven“线程中的异常”http-bio-8080-exec-32“java.lang.OutOfMemoryError:PermGen space”

[英]Maven “Exception in thread ”http-bio-8080-exec-32“ java.lang.OutOfMemoryError: PermGen space”

我在Ubuntu 11.10下使用Struts2 + Spring和Hibernate框架在NetBeans中创建了一个项目。 第一次运行是好的,但是当我第二次或第三次运行它时,我一直得到这个例外。 没有Maven一切顺利。 我用apt-get install安装了maven,是的,我在usr/bin/mvn添加了这行export MAVEN_OPTS=-Xmx512m ,但没有运气。 如何从中获得更好的表现?

你应该添加这一行:

export MAVEN_OPTS="-Xmx512M -XX:MaxPermSize=512M" 

请注意,有些用户报告说双引号存在问题,因此您可能希望使用:

export MAVEN_OPTS=-Xmx512M -XX:MaxPermSize=512M 

编辑:

由于您使用的是Tomcat,请使用以下命令:

  1. 打开tomcat / bin / catalina.sh
  2. 将此行添加到JAVA_OPTS =“ - Djava.awt.headless = true -Dfile.encoding = UTF-8 -server -Xms512m -Xmx1024m -XX:NewSize = 256m -XX:MaxNewSize = 256m -XX:PermSize = 256m -XX :MaxPermSize = 256m -XX:+ DisableExplicitGC“
  3. 保存并退出,重新启动Tomcat

更多信息在这里......

当对象没有正确清理其内存时,permgen空间通常会抛出此错误。 通常导致“孤岛”的对象仍然指向他们,但你作为程序员不能访问这些参考,因为他们住在你的空间之外。 你可能正在使用一个导致这个问题的库,它可能不会消失,直到你停止使用这个库。 至于哪个图书馆,我不确定,有很多文章解释如何找到这个,但这是一件苦差事,可能需要一段时间,除非你很幸运。 内存分析器可以提供一些想法。

好的解释文章

-Xmx512m对你没有帮助,因为你正在增加堆空间。 你的PermGen空间用完了,而不是堆空间。

尝试增加PermGen空间并放置一些标记来装饰它。 以下是更多信息: Tomcat 6中的重复“PermGen”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM