Ошибка неудовлетворенной ссылки Справка Java JNI Eclipse

Привет, я пытаюсь запустить проект в eclipse и получаю ошибку времени выполнения:

Исключение в потоке «основной» java.lang.UnsatisfiedLinkError: mywrapperclass.nativemethod()V

Я получаю код ошибки только тогда, когда вызываю собственный метод в классе-оболочке из моего main. Я просмотрел множество форумов и блогов/веб-сайтов и не смог это исправить. Отладка и мой просмотр привели меня к мысли, что проблема заключается в том, что проект не может найти собственные методы в dll.

У меня было много проблем с тем, чтобы eclipse нашел .dll, и в конце концов решил это, поместив dll в папку system32.

заранее спасибо


person Trevor Elsbree    schedule 26.08.2011    source источник


Ответы (3)


Проект > Свойства > Путь сборки Java

Нажмите на стрелку JAR, которому нужна библиотека DLL.

Расположение родной библиотеки

Вы должны указать расположение библиотеки DLL.

person Ammar    schedule 26.08.2011
comment
Где я могу найти JAR, которому нужна DLL, в окне «Путь сборки Java»? Это на вкладке источника? В исходном окне я вижу свое имя проекта/src, которое я затем открыл, чтобы найти местоположение собственной библиотеки, а затем указал местоположение .dll, и ни один из каталогов, которые я пробовал, не работал. - person Trevor Elsbree; 27.08.2011
comment
Я смог удалить UnsatisfiedLinkError, перейдя к пути сборки Java, добавив исходную папку с моими файлами so, затем щелкнув стрелку в этой папке и добавив ту же папку в настройку местоположения собственной библиотеки, как описано выше. - person Krøllebølle; 18.12.2013

Самый простой способ связать DLL с плагином eclipse

создайте структуру папок под плагином, подобную этой «os/win32/x86» для архитектуры x86, и поместите туда свои dll.

и загрузите такие библиотеки в свой код плагина System.loadLibrary("Dll name");

person Kathir    schedule 26.08.2011
comment
Кажется, что моя dll находит мою dll, она просто не может получить доступ к собственным методам, которые ему нужно найти ... нужны ли ей файлы .exp .lib .pdb? Все они существуют в проекте рядом друг с другом... - person Trevor Elsbree; 27.08.2011

  1. открыть .classpath в папке проекта
  2. Установите путь dll как «значение» для атрибута «CLASSPATH_ATTR_LIBRARY_PATH_ENTRY».
person Pradyumna Shetty    schedule 04.01.2019