Java JNA WindowProc JVM 崩溃

标签 java jvm jna wndproc

a previous question我想实现 WndProc 来处理 WM_DEVICECHANGE 消息,以便了解我的 USB 设备何时连接或分离。

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

    A fatal error has been detected by the Java Runtime Environment:

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

     JRE version: 6.0_17-b04
     Java VM: Java HotSpot(TM) Client VM (14.3-b01 mixed mode, sharing windows-x86 )
     Problematic frame:
     C  0x1000cb77

     If you would like to submit a bug report, please visit:
       http://java.sun.com/webapps/bugreport/crash.jsp
     The crash happened outside the Java Virtual Machine in native code.
     See problematic frame for where to report the bug.

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

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

问候,加博

最佳答案

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

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

关于Java JNA WindowProc JVM 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4791084/

相关文章:

Java不运行带有参数的准备好的语句并且不抛出任何错误

java - Hibernate/JPA OneToMany 是否应该在两侧进行更新?

java.lang.NoSuchMethodException : $Proxy205. 调度(int,my.package.beans.AdapterHeader,my.package.beans.AdapterInfo)

java - 如果 jar 已经在运行,则阻止它运行?

java - 如何在 JNA 结构中映射联合

java - Log4j2 看不到配置 xml

java - 是否有 -noverify jvm 标志的替代方案?

java - 计算对象的年龄有什么好处?

java - JMM 保证 try-with-resource 和 JNI 调用中的重新排序

java - 无法使用 JNA 找出 native 类型的映射