2011-01-13 6 views
3

Итак, у меня есть проект, который использует серию внешних C .dll s, и он отлично работает при работе в Netbeans, но когда я пытаюсь запустить .jar сам по себе, я получаю эту ошибку:JNA java.lang.UnsatisfiedLinkError: Не удается загрузить библиотеку ./OUNPPM '

Exception in thread "Thread-3" java.lang.UnsatisfiedLinkError: Unable to load library './OUNPPM': The specified module could not be found.

Я столкнулся с этим, прежде чем на несколько различных причин:

1) Не найти файл. 2) Не найти другую .dll, с которой .dll зависит. 3) Попытка загрузить 64-разрядную .dll с 32-разрядной JRE (или наоборот)

Есть ли способ получить лучшее сообщение об ошибке, чтобы узнать, что происходит? JNI дал лучшие ошибки, но я не нахожусь в месте, где я могу изменить это прямо сейчас.

+0

Тот, кто пришел с этим сообщением об ошибке: * Невозможно загрузить библиотеку ./OUNPPM'* заслуживает выстрела;) – SyntaxT3rr0r

+1

Причина №2 (Не найти другую .DLL ...) была причиной моего экземпляра «... UnsatisfiedLinkError ...». Я смог понять это, используя инструмент под названием «DependencyWalker» и указав foobar.DLL как файл для проверки. Инструмент дал мне список файлов, в которых зависел foobar.DLL, но к которому у него не было доступа. Я сделал разумную догадку о том, какой из них, скорее всего, был причиной ошибки, и ему повезло, потому что для получения копии выяснилась моя ошибка. Это несмотря на наличие еще 8 других файлов, которые до сих пор не были доступны для foobar.DLL. –

ответ

0

Когда вы запускаете основной класс в своем файле jar, как вы его используете, и вы установили свой jna.library.path.

Если ваш jna.library.path указывает на расположение правильных библиотек, то вы не получите эти ошибки.

+0

Я не устанавливаю jna.library.path в Netbeans или из командной строки. Он установлен для меня внутри Netbeans автоматически? Также является '.' не автоматически в пути? –

+0

System.setProperty ("jna.library.path", "."); С .dll в "." похоже, не работает. –

+0

О, и я просто запускаю с java -jar «NAVAID.jar» , а при запуске в Netbeans без его настройки он говорит, что jna.library.path имеет значение null, но все же работает. –

Смежные вопросы