10

私は時々OOMEをスローするプログラムを持っていますが、設定できるJVMオプションにフラグがあり、特定のエラー/例外(OOMEなど)が表示されるたびに、作成したスクリプトを呼び出すことを理解しています。スクリプトはユーザーに通知を提供し、別の引数を使用してプログラムを呼び出すため、OOMEが再度取得されることはありません。

誰かがこのフラグを設定する方法を知っていますか?設定する必要のあるJVMオプションは何ですか?私はオンラインでどこを見ても答えを見つけることができませんでした。

お願い助けて!ありがとう、エイ

4

2 に答える 2

15

-XX:OnOutOfMemoryError="cmd args;cmd args"

から: http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html#DebuggingOptions

于 2010-09-29T11:31:34.130 に答える
-4

フォーラムで 1 つの提案を見つけました: アプリケーションで OOME をキャッチし (メインで直接、シングル スレッドであると想定)、catch ハンドラーでこれを実行します。

catch (OutOfMemoryError not_again) {
  System.gc();
  System.runFinalization();
  System.gc();
  System.out.println("Your error message");
}

ヒープをクリーンアップすると、終了する前に最後のエラー メッセージを生成するのに十分なメモリが解放される可能性があります。

于 2010-09-29T11:34:17.760 に答える