我有一个小程序,可以让Windows 7完全冻结,鼠标指针不再响应,ctrl-alt-del不再有效等等。
当我打开任务管理器时,它不显示任何显着的CPU负载或过度使用内存。
冻结有时会在Eclipse上进行调试时发生,但并非总是如此。
我不太确定我应该在哪里设置断点,因为它是一个非常大的GUI应用程序。
这可能是JVM中的错误吗?不应该让applet做这样的事情吗?
编辑:为了回答我自己的问题,我发现了Eclipse中的错误,似乎调用Toolkit.getDefaultToolkit()。getSystemClipboard()。getContents(null)会使整个系统冻结,这是非常令人惊讶的因为Excel文件只有1 MB。也许剪贴板并不是真的适合这种情况。答案 0 :(得分:1)
使用jStack
生成线程转储。这样你就会知道代码在做什么。仅使用它:
C:\your_java_bin_folder> jstack -l <process-id>
您可以从任务管理器获取进程ID。 jStack
是jdk的一部分(据我所知,从1.5开始)。