3

全て。をネイティブ サポートとして使用するライブラリを含むバンドル jarを作成しようとしています。cmdから実行するときは、次のように入力する必要があります。Sigar.soSigar

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

はい、これは機能しますが、バンドル jarを構築したいと思います。つまり、 .so を jar に格納し、jar 内で使用します。だから私の質問は、そのjar内の.soファイルを指すjava.library.pathを設定する方法です。最後に、私はそれを次のようにしたい

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 Exception が発生しました(*)

もう 1 つの関連する質問は、jar 内の特定の場所にファイルを追加する方法です。上記の例で<fileset dir="${lib.dir}" includes="*.so"/>は、jar のルートに *.so を配置しますが、これを変更したい場合はどうすればよいですか?

前もって感謝します!

4

0 に答える 0