моему консольному приложению (проекту Java Maven) требуется JAR-зависимость, для работы которой необходимы нативные *.so
файлы.
Я нахожусь под Linux, и единственный способ заставить мое приложение работать - это установить переменную среды LD_LIBRARY_PATH
с абсолютным путем к собственным файлам *.so
.
Моя проблема: Мне нужно преобразовать консольное приложение в AWS Lambda , поэтому мне нужно встроить собственные *.so
файлы.
Попытки:
- Я поместил нативные файлы
*.so
в папку Maven resources моего проекта. Но это не сработало.
- Я изменил свою стратегию, распаковав мою JAR-зависимость, поместив собственные файлы
*.so
в корень, воссоздав JAR-зависимость с помощью утилиты jar
(внутренняя архитектура в порядке). Но это тоже не сработало:
Exception in thread "main" java.lang.UnsatisfiedLinkError: com.filepool.natives.FPLibraryNative.setLastError(I)V
at ...
N.B:
- Я думал,
-Djava.library.path
будет похоже на экспортированную переменную окружения LD_LIBRARY_PATH
, но -Djava.library.path
не работает.
- Когда я декомпилирую зависимость JAR, я вижу блок
static
, который имеет System.loadLibrary("somelibname");
, поэтому размещение собственных файлов *.so
в пути к классам должно работать (я думаю), но это не
Вопросы:
- Я что-то не так сделал?
- Есть ли у вас какие-либо предложения о том, как заставить его работать с AWS Lambda?