HOWTO · Java
Eclipse で Java ランタイム環境を続行するにはメモリが不足しています
このチュートリアルでは、Eclipse IDE での作業中に発生する 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 の空き容量を調べます。 なぜ私たちはそれをチェックしているのですか?すべてのメモリを消費するプログラムを実行している可能性があるため、それを見つけて強制終了する必要があります。
-
すべてのアプリケーションを閉じるか、マシンを再起動してメモリの断片化を解消します。