COM4J (20110320) を使用して、Dragon Naturally Speaking 11 とのインターフェイスを試みています。正常に起動し、COM オブジェクトからイベントを取得するなど、COM オブジェクトと対話できます。
ただし、JVM が起動して受信イベントをリッスンすると、JVM は最終的に EXCEPTION_ACCESS_VIOLATION でクラッシュします。このタイミングはかなり不規則で、ほぼ即時から数分かかるものまでさまざまです。
問題のあるフレームとして報告されているものはさまざまで、jvm.dll、oleaut32.dll、および com4j-x86.dll はすべてさまざまなオフセットで発生しています。Java フレームは次のように一貫しています。
j com4j.Variant.convertTo(Ljava/lang/Class;)Ljava/lang/Object;+0
j com4j.EventProxy$EventMethod.invoke(Ljava/lang/Object;I[Lcom4j/Variant;)Ljava/lang/Object;+85
j com4j.EventProxy.invoke(II[Lcom4j/Variant;)Ljava/lang/Object;+52
v ~StubRoutines::call_stub
j com4j.Win32Lock.suspend0(I)V+0
j com4j.Win32Lock.suspend()V+4,
j com4j.ComThread.run0()V+14
j com4j.ComThread.run()V+27
v ~StubRoutines::call_stub
Windows 7 Pro SP1 x64、JDK 1.6.0u24 x86 を実行しています。
クラッシュしていない同じ COM オブジェクトを使用して、C# で簡単なテストを実行しました。
洞察を共有できる人はいますか?
乾杯、ダニエル。