Будет невозможно узнать, куда распаковывается этот zip-архив во время выполнения, а это значит, что вы не можете установить java.library.path
раньше времени.
Я бы предложил сохранить файлы .dll
и .so
внутри вашего проекта как есть, без их упаковки в zip-файл. Таким образом, у вас есть постоянный путь, на который вы можете ссылаться при настройке пути к библиотеке.
Я бы не стал размещать их непосредственно в каталоге resources
, а вместо этого выделил бы отдельный каталог, в котором они могут быть размещены. Это просто личное предпочтение; Я полагаю, что если вы поместите туда свои нативные файлы, это сработает, и я считаю, что вам нужно будет установить java.library.path=resources
в этом случае (не проверял).
Например, мы разворачиваем приложение весенней загрузки с нативными зависимостями, используя Docker, и мы просто монтируем файлы .so
как том Docker, который доступен в контейнере на /native
. Затем мы просто устанавливаем аргументы JVM для включения -Djava.library.path=/native
.
Обратите внимание, что вам также может потребоваться установить LD_LIBRARY_PATH
для Linux. Этот вопрос может помочь.