[Ant]如何将.so文件添加到jar中并在jar中使用它(设置java.library.path)?

时间:2013-10-31 15:39:23

标签: java ant jar sigar

所有。我正在尝试制作包含Sigar库的捆绑jar ,该库使用.so作为原生支持。我已将Sigar压缩到my.jar中,当我从cmd运行它时,我必须输入如下内容:

java -jar -Djava.library.path=~/path/to/lib/contains/so  my.jar

是的,这是有效的,但我想构建一个捆绑jar ,也就是说,将.so包含在jar中并在jar中使用它。所以我的问题是:如何设置java.library.path指向该jar中的.so文件。最后,我想让它像

java -jar my.jar (*)// hope to run it in this way

我的build.xml看起来像是:

 27     <target name="jar" depends="compile">
 28         <mkdir dir="${jar.dir}"/>
 29         <jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}">
 30             <zipgroupfileset dir="${lib.dir}" includes="*.jar"/>
 31             <fileset dir="${lib.dir}"  includes="*.so"/>
 32             <fileset dir="${lib.dir}" includes="*.dylib"/>
 33             <manifest>
 34                 <attribute name="Main-Class" value="${main-class}"/>
 35             </manifest>
 36         </jar>
 37     </target>

到目前为止,当我使用(*)方式运行时,我得到了UnsatisfiedLink异常。

另一个相关的问题是:如何将文件添加到jar中的特定位置。在上面的示例中,<fileset dir="${lib.dir}" includes="*.so"/>会将* .so放在jar的根目录中,如果我想更改它会怎样?

提前致谢!

0 个答案:

没有答案