@evrikom

JNA. Почему не удается загрузить С библиотеку?

делал по примеру с stuf.ro/calling-c-code-from-java-using-jna
если запускать через main класс
java -Djna.library.path=/home/user/1 -Djna.debug_load=true com/mycompany/testjna/HelloWorld

библиотека загружается и функция вызывается.
...
Found library 'ctest' at /home/user/1/libctest.so
Hello from C!

Однако если сделать jar и запустить его :
java -Djna.library.path=/home/user/1 -jar testJNA-1.0-SNAPSHOT-jar-with-dependencies.jar

возникает ошибка:
evrikom@evrikom:~/NetBeansProjects/testJNA/target$ java -Djna.library.path=/home/user/1 -jar testJNA-1.0-SNAPSHOT-jar-with-dependencies.jar 
arch:x86 prefix:linux-x86 libName:c
Exception in thread "main" java.lang.UnsatisfiedLinkError: /tmp/jna--1364653087/jna7467041216767909949.tmp: /tmp/jna--1364653087/jna7467041216767909949.tmp: сбой отображения сегмента из разделяемого объекта
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
  • Вопрос задан
  • 332 просмотра
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
Проблема в опции noexec монтирования /tmp, не позволяющей ничего выполнять из временного каталога. Нужно либо перемонтировать без неё, либо попробовать запустить виртуальную машину с параметром jna.tmpdir указывающим куда-нибудь в другое место.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы