Что является причиной UnsatisfiedLinkError? - PullRequest
10 голосов
/ 15 марта 2010

Когда я пытаюсь запустить мою программу, она выдает следующую ошибку

       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.<clinit>(JacobObject.java:108)
at javaSMSTest.main(javaSMSTest.java:18)

помогите пожалуйста

Ответы [ 3 ]

21 голосов
/ 15 марта 2010

Из Javadoc:

Брошенный, если Виртуальная машина Java не может найти соответствующее определение на родном языке метода, объявленного нативным.

Это ошибка, связанная с JNI. loadJacobLibrary пытается загрузить собственную библиотеку с именем jacob-1.14.3-x86, и она не найдена на пути, определенном java.library.path. Этот путь должен быть определен как системное свойство при запуске JVM. например,

-Djava.library.path=<dir where jacob library is>

В Windows фактический файл собственной библиотеки будет называться jacob-1.14.3-x86.dll, а в Linux он будет называться libjacob-1.14.3-x86.so

.
1 голос
/ 15 марта 2010

Вам нужна библиотека jacob-1.14.3-x86 в вашем пути к библиотеке java.

В Windows это будет jacob-1.14.3-x86.dll.

Это двоичный файл, который используется Java для запуска собственных методов. Вероятно, это требуется какой-то библиотекой (jar), которую вы используете.

В здесь вы можете видеть не только банку, но и двоичный файл, необходимый для баночки. Выберите тот, который подходит для вашей платформы.

0 голосов
/ 25 марта 2011

Цитировать 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

В этом случае у вас либо неправильное имя метода, либо вам придется вернуться и добавить метод и перекомпилировать код ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...