UnsatisifedLinkedError: Не удалось найти библиотеку-заглушку в файле JAR

Я пытаюсь использовать эту библиотеку jnr-jffi. Кажется, что он зависит от jffi, поэтому я также создал его и включил в папку libs.

Мой код для загрузки собственного кода выглядит следующим образом:

MATH_LIB = LibraryLoader.create(MathLib.class).load("math");

MATH_LIB.Multiply(1, 2);

И я получаю следующую ошибку:

java.lang.UnsatisfiedLinkError: java.lang.UnsatisfiedLinkError: could not locate stub library in jar file.  Tried [jni/Darwin/libjffi-1.2.dylib, /jni/Darwin/libjffi-1.2.dylib]

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

Как я могу продолжить загружать свой родной код, используя эту библиотеку.

Обратите внимание, что я попытался добавить различные пути при запуске моего проекта, а также добавить библиотеки в различные места на моей машине, но безуспешно.

Это означало бы, что мне нужно выяснить, как отлаживать дальше в этом? Любой совет приветствуется.

2 ответа

Вам нужна версия файла для конкретной платформы: libjffi-1.2.dylib Обратитесь к этой проблеме и попробуйте найти соответствующий jar для вашей версии платформы, который будет содержать вышеуказанный файл библиотеки.

Было бы проще использовать Maven при использовании JNR. Maven автоматически разрешит все необходимые зависимости.

Вы можете просто добавить это в свой pom.xml:

<dependency>
     <groupId>com.github.jnr</groupId>
     <artifactId>jnr-ffi</artifactId>
     <version>2.0.9</version>
</dependency>

Или найдите более свежую версию здесь.

Другие вопросы по тегам