【发布时间】:2020-05-25 08:33:43
【问题描述】:
我有一个依赖于我希望能够通过 Maven 运行的系统库的程序。我已经很好地配置了程序并且 maven 运行,但是当它必须加载系统库时失败,我使用的是:
static {
System.loadLibrary("jniortools");
}
Java 抛出这个异常
Exception in thread "main" java.lang.UnsatisfiedLinkError: no jniortools in java.library.path
我尝试根据this 问题将此添加到我的pom.xml 中,但这似乎不起作用。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<forkMode>once</forkMode>
<workingDirectory>target</workingDirectory>
<argLine>-Djava.library.path=${basedir}/src/main/resources/lib/jniortools.dll</argLine>
<environmentVariables>
<PATH>${basedir}\..;${java.library.path}</PATH>
</environmentVariables>
</configuration>
</plugin>
这就是我在外部 jar 中加载的方式
<dependency>
<groupId>com.google.ortools</groupId>
<artifactId>ortools</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${basedir}/lib/com.google.ortools.jar</systemPath>
</dependency>
我还能如何做到这一点?
【问题讨论】:
-
-Djava.library.path=${basedir}/src/main/resources/lib/jniortools.dll。我认为您需要传递路径,而不是文件。所以试试-Djava.library.path=${basedir}/src/main/resources/lib/ -
我得到了与路径而不是文件相同的异常。