Java出堆空间错误

时间:2010-02-18 12:15:00

标签: java ant

我通过Ant脚本运行了一个非常长的进程,我允许以下堆,但它仍然给我错误。

set ANT_OPTS=-Xms1024M -Xmx2024M -XX:MaxPermSize=512M

3 个答案:

答案 0 :(得分:1)

我觉得你使用更多的2G进行构建似乎很奇怪(虽然它显然是可能的)所以我会做一些愚蠢的问题只是为了帮助你思考你的问题:

  • 你真的确定ANT_OPTS设置正确吗?
  • 您是从命令行还是从IDE启动脚本?
  • 您使用的是哪个操作系统?
  • 你的盒子里有多少物理记忆?
  • 您使用的是由构建触发的任何插件或工具吗?
  • 您是否在构建期间启动测试?你在测试期间分叉吗?

答案 1 :(得分:0)

这意味着您的代码确实在尝试使用超过2G的内存。使用jprofiler或yourkit或JVM的内置工具来查明它正在做什么并减少内存使用。

此外,如果在32位计算机上,您不一定能获得完整的2G。

答案 2 :(得分:0)

您还可以启用垃圾收集日志记录(详细信息here),并查看Heapspace增长如此之多的原因。这可能是内存泄漏。当然,JProfiler也会允许你这样做。 Eclipse 3.4及更高版本内置了一个分析器,如果您不想使用JProfiler,可以将其附加到运行程序的JVM。