«Не удалось загрузить библиотеку собственного кода» вне среды IDE при запуске экспортированного файла .jar - PullRequest
0 голосов
/ 06 июня 2019

, как указано в заголовке, моя программа не запускается за пределами Eclipse. Я импортировал библиотеку, состоящую из xy.jar и xy_jni.dll

CMD в папке jar-файла:

java -jar myprogramm.jar

сопровождается утверждением:

"Native code library failed to load. Please add the xy-folder as location for native libraries. java.lang.UnsatisfiedLinkError: no xy_jni in java.library.path

При экспорте jar-файла не имеет значения, нажму ли я на кнопку извлечения или упаковки ресурсов.

Также в Project-Settings, Java Build Path, Libraries добавляется .jar & xy_jni (.dll), и во всех расширяемых библиотеках «папка xy» задается как «Расположение собственной библиотеки». Также в разделе «Библиотеки» я добавил «Добавить библиотеку» с именем «xy-folder», запрещающую .jar & xy_jni.dll

При открытии окончательного экспортированного jar-файла с помощью средства просмотра файлов папка xy включается только в xy_jni.dll, файл xy.jar находится в корневой папке.

Что я делаю не так? Заранее большое спасибо!

1 Ответ

1 голос
/ 07 июня 2019

Нелегко распространять dll/so/dylib в файле jar.Причина в том, что вы зависите от системы при загрузке библиотек.

Как правило, библиотеки должны располагаться где-то в файловой системе.Таким образом, они загружаются System.load и System.loadLibrary.

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

Ознакомьтесь с полным примером загрузки библиотек из JAR:

https://github.com/mkowsiak/jnicookbook/tree/master/recipeNo035

...