Ява не загружается .dylib и .jnilib - PullRequest
0 голосов
/ 20 января 2019

Итак, я пытаюсь выполнить базовую загрузку.

System.out.println(System.getProperty("java.library.path"));
System.load("/Users/Aaroneiros/Desktop/morfeusz2plugin/libmorfeusz2.dylib");
System.load("/Users/Aaroneiros/Desktop/morfeusz2plugin/libjmorfeusz.jnilib");

если вторая загрузка закомментирована, то она завершается успешно. Однако, если это не закомментировано, я получаю исключение UnsatisfiedLinkError, что libmorfeusz2.dylib не загружается.

Я также пытался использовать System.loadLibrary с именами lib "libmorfeusz2" и "libmorfeusz2.dylib".

Мой java.library.path довольно стандартный /Users/.../Library/Java/Extendsions: / Network / Library / Java / Extensions: / usr / lib / java и т. Д. Я положил libmorfeusz2.dylib и libjmorfeusz.jnilib в .../Library/Java/Extension s и /usr/lib/java/. Они также находятся в той же директории, что и скрипт, который я запускаю. Так что, насколько я понимаю, это должно работать. Есть идеи, что я делаю не так? Или что может быть не так?

Edit. Это работает, если я добавляю их вручную в проект идеи IntelliJ, но вкратце, я делаю плагин эластичного поиска, и я вроде как не могу добавить это вручную.

Редактировать 2. Использование otool как предложено @Siguza:

otool -l /Users/Aaroneiros/Desktop/morfeusz2plugin/libmorfeusz2.dylib | fgrep -A5 LC_ID_DYLIB
          cmd LC_ID_DYLIB
      cmdsize 64
         name @executable_path/libmorfeusz2.dylib (offset 24)
   time stamp 1 Thu Jan  1 01:00:01 1970
      current version 0.0.0
compatibility version 0.0.0

и

otool -l /Users/Aaroneiros/Desktop/morfeusz2plugin/libjmorfeusz.jnilib | fgrep -A5 LC_LOAD_DYLIB
          cmd LC_LOAD_DYLIB
      cmdsize 48
         name libmorfeusz2.dylib (offset 24)
   time stamp 2 Thu Jan  1 01:00:02 1970
      current version 0.0.0
compatibility version 0.0.0
--
          cmd LC_LOAD_DYLIB
      cmdsize 56
         name /usr/lib/libstdc++.6.dylib (offset 24)
   time stamp 2 Thu Jan  1 01:00:02 1970
      current version 7.5.0
compatibility version 7.0.0
--
          cmd LC_LOAD_DYLIB
      cmdsize 56
         name /usr/lib/libgcc_s.1.dylib (offset 24)
   time stamp 2 Thu Jan  1 01:00:02 1970
      current version 1.0.0
compatibility version 1.0.0
--
          cmd LC_LOAD_DYLIB
      cmdsize 56
         name /usr/lib/libSystem.B.dylib (offset 24)
   time stamp 2 Thu Jan  1 01:00:02 1970
      current version 111.1.4
compatibility version 1.0.0
...