Eclipse で Java ランタイム環境を続行するにはメモリが不足しています
今日は、Java ランタイム環境を続行するにはメモリが不足しています
というエラーについて学びます。 また、考えられる理由を見つけて、その解決策に導きます。
エラーの説明とその原因
Eclipse IDE を使用して実行しようとしている単純な Java プログラムがあります。 プログラムを実行するとすぐに、Java ランタイム環境を続行するにはメモリが不足しています
というエラーが表示されます。
4GBのRAMを搭載したパーソナルコンピューターがあることに注意することも重要です. Cドライブに約20GBの空きディスク容量を持つコアi3プロセッサを搭載したWindows 8を使用しています。
また、Java ランタイム環境 (JRE
) をバージョン 1.7 から 1.8 に変更しましたが、問題は修正されていないようです。
このエラーはどういう意味ですか? out-of-memory
エラーには 2 種類あることを思い出してください。
最初のエラーは、Java プログラムの実行中に発生する OutOfMemoryException
であり、Java ヒープはそれほど大きくありません。 これは、Java プログラムが Java ランタイムに追加のメモリを要求することを意味します。
-Xmx...
で修正できます。
直面するエラーは 2 番目のタイプに属し、Java ランタイムがメモリ不足になったときに発生します。 Java がオペレーティング システムに追加のメモリを要求し、オペレーティング システムが申し訳ありませんが、もうありませんと言ったときに、この問題が発生します。
以下に、さらにいくつかの理由を示します。
- このエラーは Java に関するものではなく、Java オプションを更新する必要はありません。 このエラーは、コンピューターで複数のプログラムを実行しているため、単一のプログラムを実行するためのメモリが残っていないことを意味します。
- すべてのメモリを消費するプログラムを実行している可能性があります。
タスク マネージャー
は、そのプログラムを見つけるのに役立ちます。 - システムのスワップ領域または物理 RAM が不足している可能性があります。
- 別の可能性として、
CompressedOops
が有効な状態でプロセスが実行されており、Java ヒープがネイティブ ヒープの成長をブロックしている可能性があります。
Java ランタイム環境を続行するにはメモリが不足しています
エラーを修正するための考えられる解決策
JVM プロセスがメモリ不足になる可能性はたくさんあります。 私たちの見解では、プロセスに現在の制限が必要な場合は、以下にリストされている可能性が最も有望です。
-
-Xmx/-Xms
を使用して Java ヒープ サイズを減らします。eclipse.ini
ファイルには、-Xmx1024m
のような行があり、これを置き換えることができます (たとえば、-Xmx640m
)。さまざまなオプションを試して、ニーズに十分な最大ヒープ サイズを見つけることができます。
-Xms
は-Xmx
より小さくなければならないことに注意してください。 -
64 ビット システムの場合は、Eclipse 64 ビットと Eclipse OpenJ9 を使用できます。
OpenJ9
はメモリ消費を考慮するとより効率的であるため、このソリューションは 64 ビット システムを使用している場合にのみ推奨されます。 この点で調整することもできます。 -
タスクバーの
検索
オプションを使用してタスク マネージャー
と入力し、RAM の空き容量を調べます。 なぜ私たちはそれをチェックしているのですか?すべてのメモリを消費するプログラムを実行している可能性があるため、それを見つけて強制終了する必要があります。
-
すべてのアプリケーションを閉じるか、マシンを再起動してメモリの断片化を解消します。