Я пытаюсь загрузить Linux-файл .so во время выполнения на 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