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内存和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)
答案 0 :(得分:1)
我认为你不需要为日食添加内存。 在程序的运行配置中添加内存。 为此,右键单击您的项目 - &gt;运行As - &gt;运行配置。 在java Application / executer下,转到参数。 在那里,您可以指定任何VM参数。
答案 1 :(得分:1)
问题是JVM需要堆的连续内存,这对于像XP这样的旧操作系统来说是一个问题。
如果您已经运行Eclipse,则可能没有足够的contiguos内存。
解决方案:
1。)从命令行运行程序,而Eclipse和其他内存饥饿的应用程序(Office?IE?请咨询您的任务管理器以查明)未运行。请注意,Windows XP中的最大堆大小仍然是1200M。
2.)升级到Windows 7或8
3。)(我的首选)更改操作系统并使用Linux进行开发。
答案 2 :(得分:0)
将Xmx和Xms参数的影响更改为Eclipse使用的内存,而不是您在Eclipse中运行或调试的Java应用程序。
要在运行或调试模式下为特定Java应用程序添加更多内存,您必须转到Run - &gt;运行配置(或调试配置):
答案 3 :(得分:0)
使用此命令设置JVM的最大和最小堆
java -Xms256m -Xmx1024m YourClassNameHere
答案 4 :(得分:0)
您可能遇到的另一个问题是您使用的是32位JVM。看看这个:
Want to increase Java Heap Size to 4GB+: Physical Memory 8 GB, JVM 64-bit