Итак, у меня есть проект, который использует серию внешних 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 дал лучшие ошибки, но я не нахожусь в месте, где я могу изменить это прямо сейчас.
Тот, кто пришел с этим сообщением об ошибке: * Невозможно загрузить библиотеку ./OUNPPM'* заслуживает выстрела;) – SyntaxT3rr0r
Причина №2 (Не найти другую .DLL ...) была причиной моего экземпляра «... UnsatisfiedLinkError ...». Я смог понять это, используя инструмент под названием «DependencyWalker» и указав foobar.DLL как файл для проверки. Инструмент дал мне список файлов, в которых зависел foobar.DLL, но к которому у него не было доступа. Я сделал разумную догадку о том, какой из них, скорее всего, был причиной ошибки, и ему повезло, потому что для получения копии выяснилась моя ошибка. Это несмотря на наличие еще 8 других файлов, которые до сих пор не были доступны для foobar.DLL. –