使用Maven的Eclipse项目上的sigar .so文件

时间:2015-12-30 19:14:05

标签: eclipse maven sigar

我在Eclipse中有一个Maven项目,我使用

添加了Sigar库
<dependency>
        <groupId>org.fusesource</groupId>
        <artifactId>sigar</artifactId>
        <version>1.6.4</version>
</dependency>

这是在日食下顺利编译和执行。当我创建一个可执行jar时,我收到一个错误,java.library.path中不存在.so文件。

DEBUG Sigar  - no libsigar-amd64-linux.so in java.library.path
org.hyperic.sigar.SigarException: no libsigar-amd64-linux.so in java.library.path

经过一些研究和阅读(确定,超过一些)我复制了sigar的lib文件夹(包含所有.so文件的文件夹)在我的项目下(我不确定是否必须将其复制到特定的地方,所以我把它放在项目的根目录下)并将maven依赖项改为:

<dependency>
        <groupId>org.fusesource</groupId>
        <artifactId>sigar</artifactId>
        <version>1.6.4</version>
        <configuration>
            <workingDirectory>${project.build.directory}/Sigar_lib</workingDirectory>
            <mainClass>my.package.name.MyClass</mainClass>
            <includeProjectDependencies>true</includeProjectDependencies>
        </configuration>            
    </dependency>

尝试了<workingDirectory>标记的所有不同方法,包括/不包含构建目录,正向/反向斜杠等等。每次jar都无法以相同的错误执行。

请帮忙吗?谢谢

1 个答案:

答案 0 :(得分:0)

请考虑使用Apache Maven Shade plugin来构建可执行jar。您可以配置您希望在最终的Uber jar中拥有哪种资源。详情请见here

实施例

<filter>
      <artifact>*:*</artifact>
       <includes>
            <include>xxx/*.so</include>
      </includes>
 </filter>

希望有所帮助。

相关问题