我正在尝试使用COM4J(20110320)与Dragon Naturally Speaking 11进行交互。它成功启动,我可以与COM对象进行交互,包括从中获取事件。
然而,一旦它启动并正在侦听要进入的事件,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。
我在C#中使用相同的COM对象进行了快速测试,但没有崩溃。
任何人都能分享见解吗?
干杯, 丹尼尔。