У меня есть простой проект Spring Boot, который загружает собственные библиотеки. Проблема в том, что я не знаю, как указать путь к собственной библиотеке при запуске приложения.
Я прочитал тонны постов, объясняющих, как установить java.library.path
, но каждый ведет к
java.lang.UnsatisfiedLinkError: /path/to/lib/libconnector.so: libconnector.so: cannot open shared object file: No such file or directory
Проект работает, если я запускаю эти две команды в последовательности из командной строки:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/lib
./gradlew bootRun
Библиотека загружена и работает. Но я не могу указать путь к библиотеке в моем файле Gradle. Я пытался
run {
systemProperty 'java.library.path', file('/path/to/lib')
}
bootRun {
systemProperty 'java.library.path', file('/path/to/lib')
}
и всевозможные варианты этого. Также попытался добавить аргументы VM в мою IDE и т. Д., Но ничего не работает. Может кто-нибудь объяснить, что я делаю не так?
Вот как я загружаю собственную библиотеку (находится в $projectRoot/lib
):
static {
// load connector library
File lib = new File("lib/" + System.mapLibraryName("connector"));
System.load(lib.getAbsolutePath());
}