如何从java程序中收集特定pid的堆转储

如何从java程序中收集特定pid的堆转储,java,Java,假设我的java应用程序正在使用一些pid号运行,我已经编写了程序来获取我的应用程序pid运行时,现在如何从我的java程序中收集这个pid的堆转储。我遵循了下面的链接,但它将为所有活动对象提供堆转储,而不是特定于我的pid,是否有方法仅收集特定于我的pid的堆转储。假设我有pid编号 这似乎很简单: jmap -dump:format=b,file=<file-path> <pid> jmap-dump:format=b,file= 这来自我发现的一篇文章的顶部,

假设我的java应用程序正在使用一些pid号运行,我已经编写了程序来获取我的应用程序pid运行时,现在如何从我的java程序中收集这个pid的堆转储。我遵循了下面的链接,但它将为所有活动对象提供堆转储,而不是特定于我的pid,是否有方法仅收集特定于我的pid的堆转储。假设我有pid编号


这似乎很简单:

jmap -dump:format=b,file=<file-path> <pid> 
jmap-dump:format=b,file=
这来自我发现的一篇文章的顶部,该文章还提供了转储堆的其他方法:


如果需要在Java代码内部执行此操作,只需通过
子流程
模块调用此工具即可。上述文章提供了一些备选方案。

感谢您的回复。这个jmap依赖于JDK,但我只想使用jre依赖生成。Hi intu,在链接上发布了代码-Hi Ramesh,您使用pid生成JMXServiceURL时,只需检查pid>0。这个pid是如何附加到收集堆的