Я пытаюсь загрузить файл .so linux во время выполнения в Java , но я получаю ошибку UnsatisfiedLinkError. Я передаю аргумент -Djava.library.path = / Users / tom / codebase / jni / dist VM при запуске приведенного ниже основного java из моего Test.class. Файл libSample.so находится в каталоге / Users / tom / codebase / jni / dist. Любые идеи? Спасибо!
public class Test {
public static void main(String[] args) {
System.out.println(System.getProperty("java.library.path"));
//prints /Users/tom/codebase/jni/dist
System.loadLibrary("Sample");
}
}
Аргумент VM:
-Djava.library.path=/Users/tom/codebase/jni/dist
Исключение:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no Sample in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1758)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1045)
at Test.main(Test.java:9)
Я также попытался использовать прямой подход (с использованием System.load) и получил следующие результаты, если они помогают любому исключению в потоке "main" java.lang.UnsatisfiedLinkError: /Users/tom/codebase/jni/dist/libSample.so: подходящего изображения не найдено. Было найдено: /Users/tom/codebase/jni/dist/libCiscoEnergyWiseJni.so: неизвестный тип файла, первые восемь байтов: 0x7F 0x45 0x4C 0x46 0x01 0x01 0x01 0x00