まず、私は8GBのRAMが入った箱を持っているので、合計メモリが問題だとは思いません。このアプリケーションは、6GB以下のマシンで正常に動作しています。
Eclipseの実行構成の「VM引数」で-Xmx3Gを使用して3GBのスペースを予約しようとしています。
1500mb以上を予約しようとするたびに、次のエラーが表示されます。「VMの初期化中にエラーが発生しました。-Xmx3Gを使用して、オブジェクトヒープ用の十分なスペースを予約できませんでした」
ここで何が起こっているのですか?
まず、私は8GBのRAMが入った箱を持っているので、合計メモリが問題だとは思いません。このアプリケーションは、6GB以下のマシンで正常に動作しています。
Eclipseの実行構成の「VM引数」で-Xmx3Gを使用して3GBのスペースを予約しようとしています。
1500mb以上を予約しようとするたびに、次のエラーが表示されます。「VMの初期化中にエラーが発生しました。-Xmx3Gを使用して、オブジェクトヒープ用の十分なスペースを予約できませんでした」
ここで何が起こっているのですか?
回答:
そのマシンで32ビットのJVMを使用している可能性がありますか?
ここではそれを修正する方法です:
GO TO 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;
これを適切なパスに変更します。
これは実際にはEclipse固有の問題ではありません。これは一般的なJava-on-Windowsの問題です。これは、JVMがWindowsでメモリを割り当てる方法が原因です。割り当て要求を満たすのに十分な個別のチャンクがある場合でも、Windowsが提供できないことが多い連続したメモリチャンクの割り当てを要求します。Windowsがメモリを "デフラグ"するのを助けるユーティリティがあり、理論的にはこの状況を助けます。しかし、私は実際にそれらを真剣に試したことがないので、それらの有効性について話すことができません。私が時々役立つかもしれないと聞いたのは、Windowsを再起動し、他のアプリを起動する前に、大きなメモリチャンクを必要とするJavaアプリを起動することです。運が良ければ、Windowsはまだメモリ空間を断片化しておらず、Javaは要求された連続したブロックを取得します。
インターウェブのどこかに、この問題に関するより詳しい技術的な説明と分析がありますが、参考になる資料はありません。
しかし、私はこれを見つけました、それは役立つようです:https : //stackoverflow.com/a/497757/639520
まず、32ビットのJREは、1.5GBを超えるRAMを使用できません。より多くが必要な場合は、64ビットJREを使用してください。
次に、新しいJVMが起動したときに、実行中のすべてのJVMの-Xmxプロパティを合計し、独自の-Xmxで実行するのに十分なメモリがシステムに残っているかどうかを確認します。十分でない場合、エラーが発生します。
私はEclipse IDEのTomcatサーバーでLiferayを使用していました。サーバーの起動時にクリックすると、同じエラーが発生しました。日食からサーバーをダブルクリックします。サーバーの概要ページが開きます。メモリ引数を-Xmx1024m -XX:MaxPermSize = 256mから-Xmx512m -XX:MaxPermSize = 256mに更新しました。それからそれは私のために働いていました。
Eclipseが実際に実行していると思われるものと同じJVMを実行していることを確認してください。これまでにWebブラウザーでjavaを使用している場合、32ビットバージョンも使用されている可能性が高く、最近インストールまたは更新された場合に優先される可能性があります。
念のため、次の2行をeclipse.ini
ファイルの上部に追加することをお勧めします。
-vm
C:/Java/jdk1.6.0_27/bin
...私のマシン上の、C:/Java/jdk1.6.0_27/bin
JVMが64ビットであることがわかっている場所にあります。bin
そこにフォルダがあることを確認してください。
(おまけとして、Windows 7では、これにより実際に「タブを固定」することもできます。これが、私が自分で使用するためにこれを行わなければならなかった理由です)
eclipse.ini
ページ:wiki.eclipse.org/...
これはヒープサイズの問題です。.bat
(バッチファイル)を編集します。ヒープサイズ1024を表示している可能性があります。512に変更すると、動作するはずです。
#
シンボルorg.gradle.jvmargs=-Xmx1536m
をgradle.propertiesの前に置くだけです
# org.gradle.jvmargs=-Xmx1536m
おそらくあなたはとにかく間違ったオプションを試しています。エラーログのサポートで同様のエラーが発生しました。
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がありました。
私は少し遅れていることを知っていますが、ここで私の答えは次のとおりです:
OracleからJavaオンラインバージョンをインストールしました(オフラインの64ビットバージョンではありません)。
JAVA_HOME ENV変数を追加した後、動作しました!
私が助けてくれることを願っています:)