是否可以获取 Java Web Start 应用程序的线程转储?如果是这样,怎么做到的?
如果有一个简单的解决方案就好了,它可以让非开发人员(客户)创建线程转储。或者,是否可以通过编程方式创建线程转储?
在 Java Web Start 控制台中,我可以通过按“t”来获取线程列表,但不包括堆栈跟踪。
如果答案需要某些 java 版本,请说明。
最佳答案
在控制台中,按 V 而不是 T:
t: dump thread list
v: dump thread stack
这在 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
问候,
斯科蒂
关于java - 如何创建 Java Web Start 应用程序的线程转储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/90682/