2011-01-25 121 views
1

a previous question我想實現WndProc來處理WM_DEVICECHANGE消息,以便知道我的USB設備何時連接或分離。Java JNA WindowProc JVM崩潰

我設法解決這個問題,但是....在某些情況下,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. 

我發現它只有崩潰的JVM,如果我趕緊閉上我的框架插入我的USB設備後,可能會導致消息處理不當。在錯誤消息中,它說有一個「有問題的框架」,所以可能是我隱藏的靜態窗口,處理WM_DEVICECHANGE消息導致崩潰,但我不確定。

所以我的問題是在這種情況下可以做什麼,或者什麼可能導致JVM崩潰。歡迎任何建議。

關於Gabor

回答

0

有問題的幀是指堆棧幀(即運行方法)。它確實是而不是是指一個窗口(java.awt.Framejavax.swing.JFrame)。

是否關閉窗口以某種方式與JNI代碼交互?

+0

我不使用JNI,只有JNA。如果它有幫助,我可以發佈代碼。 – Gabor 2011-01-25 08:31:20