1

上一个问题中,我想实现WndProc处理WM_DEVICECHANGE消息以了解我的 USB 设备何时连接或分离。

我设法解决了这个问题,但是....在某些情况下,JVM 崩溃并出现以下丑陋的错误消息:

    Java 运行时环境检测到一个致命错误:

      EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x1000cb77, pid=3448, tid=4432

     JRE 版本:6.0_17-b04
     Java VM:Java HotSpot(TM) Client VM(14.3-b01混合模式,共享windows-x86)
     有问题的框架:
     C 0x1000cb77

     如果您想提交错误报告,请访问:
       http://java.sun.com/webapps/bugreport/crash.jsp
     崩溃发生在 Java 虚拟机之外的本地代码中。
     请参阅有问题的框架以了解报告错误的位置。

我发现如果我在插入我的 USB 设备后快速关闭我的框架,它只会使 JVM 崩溃,所以可能该消息没有得到正确处理。在错误消息中它说有一个“有问题的框架”,所以可能是我隐藏的静态窗口,它处理 WM_DEVICECHANGE 消息导致崩溃,但我不确定。

所以我的问题是在这种情况下可以做什么,或者什么可能导致 JVM 崩溃。欢迎任何建议。

问候, 加博尔

4

1 回答 1

1

有问题的帧是指堆栈帧(即运行方法)。它不是指窗口(java.awt.Framejavax.swing.JFrame)。

关闭窗口是否与 JNI 代码交互?

于 2011-01-25T08:28:47.923 回答