我有一個從控制臺運行的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
提交
取消