如何创建Java Web Start应用程序的线程转储

ahu*_*ahu 5 java debugging multithreading thread-dump java-web-start

是否可以获得Java Web Start应用程序的线程转储?如果是这样,怎么样?

如果有一个简单的解决方案,这将使非开发人员(客户)能够创建一个线程转储,这将是很好的.或者,是否可以通过编程方式创建线程转储?

在Java Web Start控制台中,我可以按't'获取线程列表,但不包括stacktraces.

如果答案需要某些Java版本,请说明.

sco*_*tty 6

在控制台中,按V而不是T:

t:   dump thread list
v:   dump thread stack
Run Code Online (Sandbox Code Playgroud)

这适用于JDK6.不了解别人.

或者,在JDK5下(可能更早),您可以将所有线程的完整堆栈跟踪发送到标准输出:

在Windows下:在Java控制台中键入ctrl-break.

在Unix下:( kill -3 <java_process_id> 例如kill -3 5555).这不会杀死你的应用程序.

另一件事:正如其他人所说,你可以通过Thread类以编程方式获取堆栈,但要注意Thread.getAllStackTraces()JDK6之前的内存泄漏.

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6434648

问候,