0

1024M を超えるヒープ領域を持つ特定の Java プログラムを実行しようとしています。私は 4GB の RAM と 32 ビット OS を持っていますが、最大は 1024M です。以下は、プログラムを開始するために使用しようとしているバッチコードです。

@echo off
java -Xmx2048M -Xms2048M -jar program.jar

JVMの「十分なスペースを予約できませんでした」というエラーが表示される理由を誰か説明してもらえますか?

4

2 に答える 2

1

Windowsを使用していて、1つの32ビットプログラムが持つことができる最大アドレス空間は2GBです。プロセスとシステムはハウスキーピング関連のもの(.dllなど)にその一部を必要とするため、Javaヒープにこれら2GBすべてを使用することはできません。したがって、1.5 GBなど、より少ない容量で試してください。

32ビットプログラムにブートスイッチを介して3GBのアドレススペースを取得させることができます。ここを参照してください。これは、実際にヒープスペースがさらに必要な場合に、64ビットOSに切り替える代わりに使用できます。

于 2012-07-14T23:34:15.117 に答える
0

サイズ2048MのRAMに使用可能なメモリの連続ブロックがあってはならないため、「十分なスペースを予約できませんでした」というエラーが発生します。最初は2048Mのヒープスペースが必要になるとは思わないので、-Xmsを512Mに減らすことをお勧めします。これが機能しない場合は、-Xmxの値を減らす必要があります。

于 2012-07-14T23:36:06.063 に答える