Исключение в теме & quot; main & quot; java.lang.UnsatisfiedLinkError (библиотека не найдена, несмотря на то, что она находится в java.lang.path)

Я работаю на 64-битной машине Linux. Я пытаюсь подражать простой учебник JNI, данный Вот. После того, как я подготовил все файлы, т.е. Sample1.java, Sample1.class, Sample1.h, Sample1.cpp а также libSample1.soи когда я пытаюсь запустить команду

java Sample1

Я получаю следующую ошибку.

Exception in thread "main" java.lang.UnsatisfiedLinkError: no libSample1 in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1889)
at java.lang.Runtime.loadLibrary0(Runtime.java:849)
at java.lang.System.loadLibrary(System.java:1088)
at Sample1.main(Sample1.java:10)

Проблемная линия Sample1.java дается как;

System.loadLibrary("libSample1");

Я прочитал вопрос, похожий на мой Вот и попытался воспользоваться советом одного из своих ответы, то есть добавил текущий каталог в переменную окружения $LD_LIBRARY_PATH (текущий каталог содержит libSample1.so файл) используя;

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.

Но это все еще не помогает мне. Даже вызов java -XshowSettings:properties показывает, что java.library.path содержит . как один из путей поиска.

Когда я заменяю относительный путь к файлу абсолютным путем, заменив System.loadLibrary("libSample1") с System.load("<absolute-file-path>/libSample1.so");эта проблема уходит. Может кто-нибудь сказать мне, как убедиться, что java.library.path можно найти файл моей общей библиотеки?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]