1

Java Maven アプリケーションで Sigar を使用しようとしています。次の依存関係を追加しました。

    <dependency>
        <groupId>org.fusesource</groupId>
        <artifactId>sigar</artifactId>
        <version>1.6.4</version>
    </dependency>



    <dependency>
        <groupId>net.java.dev.jna</groupId>
        <artifactId>jna</artifactId>
        <version>4.4.0</version>
    </dependency>


    <dependency>
        <groupId>net.java.dev.jna</groupId>
        <artifactId>jna-platform</artifactId>
        <version>4.4.0</version>
    </dependency>

しかし、それは次の例外をスローしていました:

org.hyperic.sigar.SigarException: no libsigar-amd64-linux.so in java.library.path
at org.hyperic.sigar.Sigar.loadLibrary(Sigar.java:172)
at org.hyperic.sigar.Sigar.<clinit>(Sigar.java:100)
at com.ro.terminal.model.utils.TerminalUtils.<clinit>(TerminalUtils.java:28)
at com.ro.terminal.model.service.SyncModule.init(SyncModule.java:187)
at com.ro.terminal.main.Terminalinitializer.<init>(Terminalinitializer.java:124)
at com.ro.terminal.main.Terminalinitializer$3.call(Terminalinitializer.java:339)
at com.ro.terminal.main.Terminalinitializer$3.call(Terminalinitializer.java:1)
at javafx.concurrent.Task$TaskCallable.call(Task.java:1423)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.lang.Thread.run(Thread.java:748)

グーグルで調べた後、アプリケーションに必要なファイル.ddl.soファイルを追加し、へのパスを追加する必要があることがわかりましたjava.library.path

私はここからファイルをダウンロードし、それらを resources/sigar-lib の下に追加し、以下を my に追加しようとしましたpom.xml:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.8.1</version>
            <configuration>
                <systemPropertyVariables>
                    <org.hyperic.sigar.path>${sigar.libs}</org.hyperic.sigar.path>
                </systemPropertyVariables>
                <parallel>classes</parallel>
            </configuration>
        </plugin>

       ___________________________

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>

            <configuration>
                <systemPropertyVariables>
                    <java.library.path>${sigar.libs}</java.library.path>
                </systemPropertyVariables>
            </configuration>
        </plugin>

     ______________________

     <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                <argLine>-Djava.library.path=${sigar.libs}:${java.library.path}</argLine>
            </configuration>
        </plugin>

${sigar.libs}次のように定義されます。

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

    <sigar.libs>${basedir}/src/main/resources/sigar-lib</sigar.libs>

    <build.timestamp>${maven.build.timestamp}</build.timestamp>
    <maven.build.timestamp.format>yyyyMMdd-HHmm</maven.build.timestamp.format>

</properties>

私は何を間違っていますか?Ubuntu 17.10でEclipse Oxygenを実行しています

プロジェクトのスクリーンショット:

ここに画像の説明を入力

4

0 に答える 0