それが原因で一定のクラスローディングのです。
Javaはクラスバイトコードと永続ヒープ内のすべての定数(たとえば文字列定数)をデフォルトでガベージコレクションされないクラスに格納します(アプリケーションの存続期間中にクラスが一度だけロードされるため大部分の場合意味があります)。しばしば全体の存続期間中にクラスをロードするアプリケーションで
:
- のWebサーバやアプリケーションサーバのホット再デプロイメント時に、
- 開発されたアプリケーションを実行しているときのIDE(Netbeansで[実行]ボタンを押すか、Eclipseのアプリケーションクラスを新規に読み込むたびに)。
- など 最終的にヒープがいっぱいになるため、この動作は不適切です。
このエラーを防ぐには、永続ヒープガベージコレクションを有効にする必要があります。
私はオプション
-XX:MaxPermSize=256M
-XX:+CMSClassUnloadingEnabled
-XX:+CMSPermGenSweepingEnabled
(それはまた、NetBeansので動作する必要がありますので、 "java.lang.OutOfMemoryError: PermGen space
を" 投げから私の日食3.4を停止した)を使用します。
編集は:(より多くの情報のためnetbeans.conf
のコメントを参照してください)あなたは-J
でこれらのオプションをprefixeとnetbeans_default_options
にそれらを追加する必要があり [Netbeans installation]\etc\netbeans.conf
:だけでNetbeansのためにあなたがそれらのオプションを設定することに注意してください。
http://stackoverflow.com/questions/717550/java-lang-outofmemoryerror-java-heap-space-with-netbeans – Steen
さらに最新バージョンのNetBeansにアップグレードしないでください。 6.5は本当に古いです。 –
@a_horse_with_no_name:この質問と同じです。私は3年以上前にそれに尋ねました。 –