【发布时间】:2019-02-03 22:20:19
【问题描述】:
我有一个加载原生库的简单 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());
}
【问题讨论】:
标签: java spring-boot gradle