2016-07-05 16 views
-3

私は、メモリの問題の私を与える簡単なプログラムを持っている:私は私のeclpseでVM引数を設定しようとした作成整数配列

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

:これはエラーの下にスロー

public static void main(String[] args) { 

    int i[] = new int[457560000]; 
} 

-Xms1024M -Xmx2048Mのように、同じエラーが発生します。

私はこのような大きな配列は必要ありませんが、画像サイズが非常に大きい画像処理に問題がありました。デバッグ中にAWTパッケージがこの配列を作成しようとしていて、メモリの問題で失敗していることがわかりました。

この問題を解決するにはどうすればよいですか?このコードを実行する前に、どれくらいのメモリを設定する必要がありますか?

アップデート:私も6ギガバイトは、日食の実行構成VM設定でXmxのために設定してみました

、私のマシンはいくつかの時間のために絞首刑が、再び同じエラーに直面してしまいました。

+0

なぜ、そのサイズの配列を作成する必要がありますか? Javaは、その大きさの可変配列を作成するのに十分なメモリがないため、エラーをスローしています。 – Confiqure

+7

あなたは4億5600万の整数を必要としますか? –

+1

「java.lang.OutOfMemoryError:Javaヒープ領域」エラー(64MBのヒープサイズ)を処理する方法の可能な複製](http://stackoverflow.com/questions/37335/how-to-deal-with-java- lang-outofmemoryerror-java-heap-space-error-64mb-heap) – Filburt

答えて

0

指定したコードスニペットのには、使用するJREに応じて少なくとも-Xmx2640Mが必要です。

-Xmxは、必要な場合にのみ使用される最大値です。たとえば、-Xmx256000Mなどのプログラムを実行して、実際に使用されたメモリの数を調べることができます。

+0

私はすでにそれを設定している、あなたは私の質問を見ることができる、私はそれを言及した。 – user3181365

+0

'-Xmx2048M'で_OutOfMemoryError_ occures、' -Xmx2640M'でコードスニペットを実行してもエラーは発生しません。私はあなたのスニペットを実行するためにWindows上で64ビットjdk1.8.0_60を使用しました。どのようなJREを使用していますか? – howlger

関連する問題