Загрузка файла .so Linux во время выполнения Java

Я пытаюсь загрузить файл .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

7
задан c12 8 November 2011 в 23:50
поделиться