UnsatisfiedLinkError的原因是什么?

当我试图运行我的程序时,它给出以下错误

Exception in thread "main" java.lang.UnsatisfiedLinkError: no jacob-1.14.3-x86 in java.library.path at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1682) at java.lang.Runtime.loadLibrary0(Runtime.java:823) at java.lang.System.loadLibrary(System.java:1030) at com.jacob.com.LibraryLoader.loadJacobLibrary(LibraryLoader.java:184) at com.jacob.com.JacobObject.(JacobObject.java:108) at javaSMSTest.main(javaSMSTest.java:18) 

请帮忙

来自Javadoc:

如果Java虚拟机无法找到声明为native的方法的适当本机语言定义,则抛出此exception。

这是与JNI相关的错误。 loadJacobLibrary正在尝试加载名为jacob-1.14.3-x86的本机库,并且在java.library.path定义的路径上找不到它。 启动JVM时,应将此路径定义为系统属性。 例如

 -Djava.library.path= 

在Windows上,实际的本机库文件将被称为jacob-1.14.3-x86.dll,而在Linux上它将被称为libjacob-1.14.3-x86.so

您需要在java库路径上使用jacob-1.14.3-x86库。

在Windows上,这将是jacob-1.14.3-x86.dll。

这是一个二进制文件,java用它来运行本机方法。 您可能需要使用某些库(jar)。

在这里,您不仅可以看到jar,还可以看到jar所需的二进制文件。 选择适合您平台的产品。

引用http://www.velocityreviews.com/forums/t143642-jni-unsatisfied-link-error-but-the-method-name-is-correct.html :

有两件事导致UnsatisfiedLinkError。 一种是当System.loadLibrary()无法加载库时,另一种是当JVM无法在库中找到特定方法时。 错误消息本身的文本将指示是哪种情况……

您描述的错误显然无法找到库。 正如其他人所说的那样,将它包含在Java库路径中。

另一个错误 – 当找到库但找不到库中的方法时 – 看起来如下:

 java.lang.UnsatisfiedLinkError: myObject.method([Ljava/lang/Object;)V 

在这种情况下,您要么具有错误的方法名称,要么必须返回并添加方法并重新编译代码…