1

前の質問では、USBデバイスがいつ接続または切断されたかを知るために、メッセージWndProcを処理するためのを実装したいと思いました。WM_DEVICECHANGE

私はこの問題をなんとか解決しましたが、....場合によっては、JVMがクラッシュして次の醜いエラーメッセージが表示されます。

    致命的なエラーがJavaランタイム環境によって検出されました。

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

     JREバージョン:6.0_17-b04
     Java VM:Java HotSpot(TM)クライアントVM(14.3-b01混合モード、共有ウィンドウ-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 に答える