如何在未安装 JDK 的情况下为在 Linux 上运行的 Java 7 VM 触发堆转储?
在早期版本的 Java 中,可以设置-XX:+HeapDumpOnCtrlBreak
JVM 选项,然后使用kill -QUIT <pid>
. 我一直无法让它与 Java 7 一起使用。是否有与此等效的方法,而无需安装 JDK 来获取 JVisualVM 或 jmap。
VM 选项-XX:+HeapDumpOnCtrlBreak
不再在http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html中列出。因此,我得出结论,它不再受支持。
来自http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html:
使用 -XX 指定的选项不稳定,如有更改,恕不另行通知。
您可以使用 生成核心转储gcore
,将其移动到另一台计算机,然后附加jmap
以生成 hprof 文件,如使用 gcore 获取的核心转储中所述,jmap 转换为 hprof 文件格式失败并显示错误消息
另请参阅接受的答案。