2016-11-10 3 views
0

В Windows (все работает на OSX) у меня есть библиотека Java, которая зависит от родной библиотеки. Я загружаю эту отдельную библиотеку с System.load(), а сразу после появления исключения UnsatisfiedLinkError: Can't find dependent libraries.Как отладить Java UnsatisfiedLinkError?

У родной библиотеки нет особых зависимостей - она ​​зависит только от системных библиотек, что подтверждается ходом зависимостей (там, где это нормально). Я пробовал использовать x86-версию с x86 JRE и x64-версией с x64 JRE, практически не изменившись.

Проведя через два дня после этого, я хотел бы узнать, есть ли дополнительная информация, которая может быть получена из этого исключения: какая библиотека пытается загрузить, например?

+0

Какова ваша версия Windows и компилятор C/C++? Возможно, это проблема «инструментария на платформе». –

ответ

0

Я использовал System.load() для произвольного имени файла. Для его работы явно требуется явное расширение .dll.

+0

Нет «очевидно» об этом. В Javadoc сказано так: «Аргумент filename должен быть полным именем пути». – EJP

+0

Файл не имел расширения - и он * был * загружен с полным именем пути. Ошибка только прекратилась, когда файл получил '.dll' в качестве расширения, – Matoe