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

标签 java multithreading debugging java-web-start thread-dump

是否可以获取 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/

相关文章:

java - Mockito - 模拟 RestOperations

java - 代号一 javafx.util.pair

Java多线程错误 `java.lang.IllegalMonitorStateException`

java - Mockito spy 如何知道它何时进行 spy Activity ?

java - Gradle 错误 :Could not create an instance of type com. sun.tools.javac.api.JavacTool

c++ - C++ 中的错误共享

java - 在线程间进程中,为什么当子线程首先执行时主线程表现不佳?

在 macOS High Sierra 上找不到 Python 调试器 pdb

c - 为什么这段 C 代码会崩溃

debugging - 代码执行过程中上报信息 : best design