У меня есть программа Java, которая вызывает код C через JNI, которую я пытаюсь запустить в Linux. Внешний код состоит из двух файлов .so: один для привязок JNI (созданный с помощью swig), а другой — с фактическими функциями. У меня есть две библиотеки в одном каталоге, и LD_LIBRARY_PATH установлен правильно. ldd не сообщает о проблемах при запуске из командной строки, но когда я устанавливаю LD_LIBRARY_PATH в то же значение в диалоговом окне «запуск конфигураций» в редакторе Eclipse и пытаюсь выполнить программу, появляется следующая ошибка:
java.lang.UnsatisfiedLinkError: [путь к библиотекам]/[библиотека привязки JNI].so: [фактическая библиотека кода].so: невозможно открыть общий объектный файл: нет такого файла или каталога
Это наводит меня на мысль, что библиотека-оболочка JNI успешно загружена, но происходит сбой, когда эта библиотека пытается загрузить библиотеку, содержащую фактический код. Есть ли способ отладить это дальше?
Я также отмечу, что эта проблема возникает в самом редакторе eclipse и что я не пытался упаковать код в банку и запустить его в отдельном экземпляре jvm.