我有一个程序,有时会抛出 OOME 错误,我知道在JVM选项中有一个标志可以设置,每当某个错误/异常出现(例如 OOME),它就会调用我编写的脚本。
这个脚本将向用户发送通知,并使用不同的参数调用程序,以便它不会再次遇到 OOME 错误。
有谁知道如何设置这个标志吗?我需要设置哪个 JVM 选项?我在网上搜索了所有地方,都找不到答案。
请帮帮我! 谢谢, Aye
我有一个程序,有时会抛出 OOME 错误,我知道在JVM选项中有一个标志可以设置,每当某个错误/异常出现(例如 OOME),它就会调用我编写的脚本。
这个脚本将向用户发送通知,并使用不同的参数调用程序,以便它不会再次遇到 OOME 错误。
有谁知道如何设置这个标志吗?我需要设置哪个 JVM 选项?我在网上搜索了所有地方,都找不到答案。
请帮帮我! 谢谢, Aye
-XX:OnOutOfMemoryError="cmd args;cmd args"
来源:http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html#DebuggingOptions
我在论坛中找到了一个建议:在应用程序中捕获OOME(例如直接在主线程中,假设您是单线程),并在catch处理程序中执行以下操作:
catch (OutOfMemoryError not_again) {
System.gc();
System.runFinalization();
System.gc();
System.out.println("Your error message");
}