在我们的 java 程序中,我们必须使用 dll,但是我们得到了错误:
线程“OPCAgent:OPCVARCHECK5”异常 java.lang.UnsatisfiedLinkError: javafish.clients.opc.JCustomOPC.coInitializeNative()V
如你所见,dll 在正确的位置,因为我们没有得到 没有..在库路径错误中。
我们用的java是32位的,dll也是32位的。
我们不能调用任何本地方法。
private static native void coInitializeNative() throws CoInitializeException;
我们确定 dll 位于正确的位置并且可以从程序访问,因为如果我们更改 dll 的位置,错误消息将变为来自
线程“OPCAgent:OPCVARCHECK5”异常 java.lang.UnsatisfiedLinkError: javafish.clients.opc.JCustomOPC.coInitializeNative()
到
线程“主”java.lang.UnsatisfiedLinkError 中的异常:java.library.path 中没有 ./lib/JCustomOpc
如何调试问题?我尝试了一些 dll 反汇编程序,但其中许多包含病毒、恶意软件等。是否知道要查看 dll 的签名? .net 反射器失败。
最佳答案
确保您的 JCustomOPC.dll 和 jeasyopc.jar 文件兼容。可能您使用了这些库文件的不同版本。
关于java - 即使 DLL 可访问,也会出现不满意的链接错误 (java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46359086/