101

まず第一に、私は 8 GB の RAM を搭載したボックスを持っているので、合計メモリが問題であるとは思えません。このアプリケーションは、6 GB 以下のマシンで問題なく動作します。

Eclipse の実行構成の「VM 引数」で -Xmx3G を使用して 3GB のスペースを予約しようとしています。

1500 MB 以上を予約しようとするたびに、次のエラーが表示されます。「VM の初期化中にエラーが発生しました。-Xmx3G を使用して、オブジェクト ヒープに十分なスペースを予約できませんでした」

ここで何が起こっているのですか?

4

14 に答える 14

71

そのマシンで 32 ビットの jvm を使用している可能性がありますか?

于 2012-02-16T00:46:00.063 に答える
61

これを修正する方法は次のとおりです Start->Control Panel->System->Advanced(tab)->Environment Variables->System

Variables->New:
Variable name: _JAVA_OPTIONS   
Variable value: -Xmx512M

Variable name: Path  
Variable value: ;C:\Program Files\Java\jre6\bin;F:\JDK\bin;  

これを適切なパスに変更します。

于 2015-05-07T01:07:10.607 に答える
41

これは実際には Eclipse 固有の問題ではありません。これは一般的な Java-on-Windows の問題です。これは、JVM が Windows でメモリを割り当てる方法が原因です。割り当て要求を満たすのに十分な個別のチャンクがある場合でも、Windows が提供できないことが多いメモリの連続したチャンクを割り当てることを主張します。Windows がそのメモリを「デフラグ」するのを支援しようとするユーティリティがあり、理論的にはこの状況を支援します。しかし、私は実際にそれらを実際に試したことがないので、その有効性について話すことはできません. Windows を再起動し、他のアプリを起動する前に、大量のメモリを必要とする Java アプリを起動すると効果があると時々耳にします。運が良ければ、Windows はメモリ空間をまだ断片化しておらず、Java は要求された連続したブロックを取得します。

インターウェブのどこかに、この問題の技術的な説明と分析がありますが、手元にある参考文献はありません。

ただし、これは役に立ちます。https://stackoverflow.com/a/497757/639520

于 2012-02-16T01:32:24.243 に答える
22

まず、32ビットのJREは最大1.5GbのRAMを使用できません。したがって、さらに必要な場合は、64ビットJREを使用してください。

次に、新しいJVMが起動すると、実行中のすべてのJVMの-Xmxプロパティが合計され、システムに独自の-Xmxで実行するのに十分なメモリが残っているかどうかが確認されます。十分でない場合は、エラーが発生します。

于 2012-06-26T05:56:37.630 に答える
9

Eclipse が実際に実行していると思われる JVM と同じであることを確認してください。Web ブラウザーで Java を使用したことがある場合は、最近インストールまたは更新された場合に優先される 32 ビット バージョンも浮かんでいる可能性があります。

確実に確認するために、eclipse.iniファイルの先頭に次の 2 行を追加することをお勧めします。

-vm 
C:/Java/jdk1.6.0_27/bin

C:/Java/jdk1.6.0_27/bin...私が知っているJVMが64ビットである私のマシンのどこにありますか。binそこにフォルダがあることを確認してください。

(おまけとして、Windows 7では、これにより実際に「タブを固定」することもできるため、私自身の使用のためにこれを行う必要がありました)

于 2012-02-16T02:11:58.230 に答える
2

32 ビットの Eclipse と 64 ビットの JVM を使用しているときにも同じ問題が発生しました。Eclipse を 32 ビット JVM にルーティングすると、機能しました

于 2014-08-11T16:09:28.183 に答える
0

とにかく間違ったオプションを試している可能性があります。エラー ログのサポートで同様のエラーが発生しました。

Java HotSpot(TM) Client VM warning: ignoring option PermSize=32M; support was removed in 8.0
Java HotSpot(TM) Client VM warning: ignoring option MaxPermSize=128M; support was removed in 8.0

私の場合、ソフトウェアはまだJava 8をサポートしていませんでしたが(スクリプトは古いJVM引数を使用していました)、デフォルトでJava 8を使用していました。

于 2015-01-15T19:50:18.880 に答える