在我们的java程序中,我们必须使用dll,但是我们得到错误:
线程中的异常" OPCAgent:OPCVARCHECK5" java.lang.UnsatisfiedLinkError:javafish.clients.opc.JCustomOPC.coInitializeNative()V
如您所见,dll位于正确的位置,因为我们没有得到 no ..在libray路径错误。
我们使用的java是 32 位,dll也是 32 位。
我们不能调用任何本机方法。
private static native void coInitializeNative() throws CoInitializeException;
我们确定dll是正确的位置并且可以从程序中访问,因为如果我们更改dll的位置,则错误消息来自
Exception in thread "OPCAgent:OPCVARCHECK5" java.lang.UnsatisfiedLinkError: javafish.clients.opc.JCustomOPC.coInitializeNative()
到
Exception in thread "main" java.lang.UnsatisfiedLinkError: no ./lib/JCustomOpc in java.library.path
如何调试问题?我尝试了一些dll反汇编程序,但其中许多包含病毒,恶意软件等。有什么想法看到dll的签名? .net反射器失败。
答案 0 :(得分:3)
确保您的JCustomOPC.dll和jeasyopc.jar文件兼容。可能您使用这些库文件的不同版本。