无法在OutOfMemoryError时获取Java堆转储: 尝试了以下方法(one.exe是我的Java RCP应用程序):
one.exe -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=C:\Temp
但是没有帮助,文件夹路径是可访问的。我甚至尝试了像heap.hprof这样的名称,但没有结果。有人能在这里指导我吗?
无法在OutOfMemoryError时获取Java堆转储: 尝试了以下方法(one.exe是我的Java RCP应用程序):
one.exe -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=C:\Temp
但是没有帮助,文件夹路径是可访问的。我甚至尝试了像heap.hprof这样的名称,但没有结果。有人能在这里指导我吗?
-XX:+HeapDumpOnOutOfMemoryError 命令行选项。如果您指定了 -XX:+HeapDumpOnOutOfMemoryError 命令行选项,并且抛出 OutOfMemoryError,虚拟机将生成堆转储。
以上参数表示在 OOM 抛出时将生成 HeapDump。如果将 JVM 参数传递给 JVM,但没有生成堆转储,则意味着应用程序尚未遭受 OutOfMemory 条件。如果您需要确认,请获取应用程序的本地 stderr 日志文件,以检查是否发生了任何 OOM。或者包括 -verbose:gc jvm 参数并收集详细日志,并检查最后一次 GC 的 Java 堆的可用字节数。