使用Spring Boot加载本地库
我有一个简单的Spring Boot" title="Spring Boot">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());
}
回答:
我终于解决了我的问题。运行应用程序时,我应该将其LD_LIBRARY_PATH
作为环境变量而不是java.library.path
作为系统属性传递。
以下Gradle修改解决了我的问题:
tasks.withType(JavaExec) { environment('LD_LIBRARY_PATH', 'lib')
}
以上是 使用Spring Boot加载本地库 的全部内容, 来源链接: utcz.com/qa/416535.html