#java #dll #native #jna
#java #dll #родной #jna
Вопрос:
У меня есть две библиотеки DLL, C:foox.dll
и C:bary.dll
, где x.dll
зависит от y.dll
(т. Е. Реализация функций в x вызовет функции в y).
В приложении Java, когда я загружаюсь x.dll
с помощью JNA, что мне нужно настроить, чтобы гарантировать, что я не получу UnsatisfiedLinkException
?
В настоящее время я настраиваю jna.library.path
на C:foo
, но, похоже, этого недостаточно. Включение обоих C:foo
и C:bar
в java.library.path
также не помогает.
Комментарии:
1. Вы могли бы попробовать вызвать
System.loadLibrary("y")
2. Вам вообще не нужно их загружать. Зависимая библиотека просто должна быть на пути, а не
java.library.path
.
Ответ №1:
Обычно вы можете вызвать System.load("/name.dll")
с указанием пути к вашей зависимой библиотеке до выполнения вызова JNA для загрузки основной.
System.loadLibrary("name")
будет работать, если библиотека включена java.library.path
и соответствует ожидаемым соглашениям об именовании.