-1

Eclipse Java 堆大小设置为-Xms512m -Xmx512m。但由于“内存不足错误 Java 堆空间”,我的一个程序执行失败。

我试图增加java堆大小

eclipse.exe -vmargs -Xms512m -Xmx1024m 
Result:JVM Error
eclipse.exe -vmargs -Xms1024m -Xmx1024m 
Result:Again JVM error

另外,我在 eclipse.ini 中修改了 -Xms 和 -Xmx 但我没有成功。这里也有同样的错误。

我的机器有 3 GB RAM 和 Windows XP。而且我只有一个 Eclipse 安装。Java版本是1.7。

这是eclipse上错误的堆栈跟踪

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Unknown Source)
at java.lang.AbstractStringBuilder.expandCapacity(Unknown Source)
at java.lang.AbstractStringBuilder.ensureCapacityInternal(Unknown Source)
at java.lang.AbstractStringBuilder.append(Unknown Source)
at java.lang.StringBuffer.append(Unknown Source)
at java.io.StringWriter.write(Unknown Source)
at com.sun.org.apache.xml.internal.serializer.ToStream.processDirty(Unknown Source)
at com.sun.org.apache.xml.internal.serializer.ToStream.characters(Unknown Source)
at com.sun.org.apache.xml.internal.serializer.ToUnknownStream.characters(Unknown Source)
at com.sun.org.apache.xml.internal.serializer.ToUnknownStream.characters(Unknown Source)
at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(Unknown Source)
at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(Unknown Source)
at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(Unknown Source)
at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(Unknown Source)
at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(Unknown Source)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transformIdentity(Unknown Source)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source)
at businessrule.implementation.WriteToXML.printtoXML(WriteToXML.java:53)
at businessrule.implementation.WriteToXML.UpdateKnowledgeBase(WriteToXML.java:41)
at businessrule.implementation.ExecuteRule2.<init>(ExecuteRule2.java:133)
at businessrule.implementation.BusinessRules.main(BusinessRules.java:81)
4

5 回答 5

1

我认为您不需要向日食添加内存。在程序的运行配置中添加内存。为此,右键单击您的项目 -> 运行方式 -> 运行配置。在 java Application/execer 下,转到参数。您可以在此处指定任何 VM 参数。

点击这里

于 2013-10-23T11:49:53.560 回答
1

问题是 JVM 想要堆的连续内存,这对于 XP 等较旧的操作系统来说是个问题。

如果您已经在运行 Eclipse,则可能没有足够的 contiguos 内存。

解决方案:

1.) 在 Eclipse 和其他需要大量内存的应用程序(Office?IE?请咨询您的任务管理器以找出答案)未运行时,从命令行运行您的程序。请注意,Windows XP 中的最大堆大小仍为 1200M。

2.) 升级到 Windows 7 或 8

3.)(我的首选)更改操作系统并使用 Linux 进行开发。

于 2013-10-23T12:31:23.717 回答
0

更改 Xmx 和 Xms 参数会影响 Eclipse 使用的内存,但不会影响您在 Eclipse 中运行或调试的 Java 应用程序。

要在运行或调试模式下向特定 Java 应用程序添加更多内存,您必须转到运行 -> 运行配置(或调试配置):

在此处输入图像描述

于 2013-10-23T11:55:20.937 回答
0

使用此命令为您的 JVM 设置最大和最小堆

java -Xms256m -Xmx1024m YourClassNameHere
于 2013-10-23T11:58:31.820 回答
0

您可能遇到的另一个问题是您使用的是 32 位 JVM。看这个:

想要将 Java Heap Size 增加到 4GB+:物理内存 8 GB,JVM 64 位

于 2013-10-23T12:30:20.723 回答