是否可以获得Java Web Start应用程序的线程转储?如果是这样,怎么样?
如果有一个简单的解决方案,这将使非开发人员(客户)能够创建一个线程转储,这将是很好的.或者,是否可以通过编程方式创建线程转储?
在Java Web Start控制台中,我可以按't'获取线程列表,但不包括stacktraces.
如果答案需要某些Java版本,请说明.
在控制台中,按V而不是T:
t: dump thread list v: dump thread stack
这适用于JDK6.不了解别人.
或者,在JDK5下(可能更早),您可以将所有线程的完整堆栈跟踪发送到标准输出:
在Windows下:在Java控制台中键入ctrl-break.
在Unix下:( kill -3
例如kill -3 5555).这不会杀死你的应用程序.
另一件事:正如其他人所说,你可以通过Thread
类以编程方式获取堆栈,但要注意Thread.getAllStackTraces()
JDK6之前的内存泄漏.
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6434648
问候,
懥