-1

Eclipse Java ヒープ サイズが-Xms512m -Xmx512mに設定されています。しかし、「メモリ不足エラー Java ヒープ スペース」が原因で、プログラムの実行の 1 つが失敗しました。

Javaヒープサイズを増やしてみました

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

また、eclipse.ini で -Xms と -Xmx を変更しましたが、成功しませんでした。ここでも同じエラーが発生します。

私のマシンには、Windows XP で 3 GB の RAM があります。そして、私はEclipseを1つしかインストールしていません。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

問題は、JVM がヒープ用に連続したメモリを必要とすることです。これは、XP などの古い OS の問題です。

すでに Eclipse を実行している場合は、contiguos メモリが十分に残っていない可能性があります。

ソリューション:

1.) Eclipse やその他のメモリを大量に消費するアプリ (Office? IE? タスク マネージャーで確認してください) が実行されていないときに、コマンド ラインからプログラムを実行します。Windows XP の最大ヒープ サイズは依然として 1200M 程度であることに注意してください。

2.) Windows 7 または 8 にアップグレードする

3.) (私の好み) OS を変更し、Linux を開発に使用します。

于 2013-10-23T12:31:23.717 に答える
1

日食にメモリを追加する必要はないと思います。プログラムの実行構成にメモリを追加します。そのためには、プロジェクトを右クリック -> run As -> 実行構成。Java Application/executor の下で、引数に移動します。そこで任意の VM 引数を指定できます。

ここをクリック

于 2013-10-23T11:49:53.560 に答える
0

経験する可能性のあるもう 1 つの問題は、32 ビット JVM を使用していることです。これを見てください:

Java ヒープ サイズを 4GB 以上に増やしたい: 物理メモリ 8 GB、JVM 64 ビット

于 2013-10-23T12:30:20.723 に答える
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 に答える