簡體   English   中英

使用 maven 將 dll 添加到 java.library.path

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM