[英]Add dll to java.library.path using maven
我有一個程序依賴於我希望能夠通過 Maven 運行的系統庫。 我已經很好地配置了程序並且 maven 運行,但是當它必須加載系統庫時失敗,我使用的是:
static {
System.loadLibrary("jniortools");
}
Java 向我拋出了這個異常
Exception in thread "main" java.lang.UnsatisfiedLinkError: no jniortools in java.library.path
我嘗試根據這個問題將它添加到我的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>
我還能如何實現這一目標?
我不確定這是否是解決問題的正確方法,但我遇到了加載 dll 的不同方法。
所以通過替換
System.loadLibrary("jniortools");
經過
File file = new File("src/main/resources/lib/jniortools.dll");
System.load(file.getAbsolutePath());
我能夠加載 dll 並且不需要 maven-surefire-plugin。 希望這對將來的任何人都有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.