当Java进程遇到OutOfMemory错误时,如何自动创建堆转储?

当Java进程遇到OutOfMemory错误时,如何自动创建堆转储?,java,linux,jvm,out-of-memory,heap-dump,Java,Linux,Jvm,Out Of Memory,Heap Dump,我有Java程序在Linux平台上运行,它经常崩溃;在这种情况下,我希望heapdump自动运行 在Linux上,是否有脚本/方法可以在Java进程遇到“OutOfMemory错误”时自动创建堆转储 非常感谢您的帮助。请查看JVM选项,特别是: -XX:HeapDumpPath=./java_pid.hprof堆转储的目录或文件名路径。可管理的(在1.4.2更新版12、5.0更新版7中介绍。) -XX:-heapdumponotofmemoryError在抛出java.lang.OutOfMem

我有Java程序在Linux平台上运行,它经常崩溃;在这种情况下,我希望heapdump自动运行

在Linux上,是否有脚本/方法可以在Java进程遇到“OutOfMemory错误”时自动创建堆转储

非常感谢您的帮助。

请查看JVM选项,特别是:

-XX:HeapDumpPath=./java_pid.hprof堆转储的目录或文件名路径。可管理的(在1.4.2更新版12、5.0更新版7中介绍。)

-XX:-heapdumponotofmemoryError在抛出java.lang.OutOfMemoryError时将堆转储到文件。可管理的(在1.4.2更新版12、5.0更新版7中介绍。)


要自动获取堆转储,请编辑{installation directory}/bin/setenv.sh并将其添加到JAVA_选项中:

-XX:+HeapDumpOnOutOfMemoryError-XX:HeapDumpPath=[堆转储的路径]

如文档中所述:

-XX:+heapdumponotofmemoryerror命令行选项告诉HotSpot VM在无法满足Java堆或永久生成的分配时生成堆转储。使用此选项运行时没有开销,因此它对于OutOfMemoryError需要很长时间才能出现的生产系统非常有用