我有一个从控制台运行的Java应用程序,该控制台又执行另一个Java进程。我想获得该子进程的线程/堆转储。在Unix上,我可以这样做,kill -3 <pid>但是在Windows AFAIK上,获取线程转储的唯一方法是在控制台中按Ctrl-Break。但这只给了我父进程而不是子进程的转储。还有另一种方法来获得该堆转储吗?
3 回答
蝴蝶不菲
TA贡献1810条经验 获得超4个赞
除了使用提到的jconsole / visualvm,您还可以jstack -l <vm-id>在另一个命令行窗口上使用并捕获该输出。
可以使用任务管理器(它是Windows和UNIX上的进程ID)或使用来找到<vm-id> jps。
两者jstack和jps都包含在Sun JDK版本6和更高版本中。
添加回答
举报
0/150
提交
取消