方法1:从命令行使用Jstack实用程序(JDK发行版的一部分)。
方法2:将信号3发送到Java进程,它将在stdout上转储堆栈跟踪。
方法3:从应用程序内部调用Thread.getAllStackTraces():
public class StackTraceDumper{ public static dumpAllStackTraces () { for (Map.Entry <Thread, StackTraceElement []> entry: Thread.getAllStackTraces().entrySet ()) { System.out.println (entry.getKey ().getName () + ":"); for (StackTraceElement element: entry.getValue ()) System.out.println ("t" + element); } }}然后
StackTraceDumper.dumpAllStackTraces()在需要转储堆栈跟踪的位置使用。



