[Ant] Wie füge ich eine .so-Datei in ein jar hinzu und verwende sie in jar (setze den java.library.path)?

alles. Ich versuche eine zu machenBündel Glas enthältSigar Bibliothek, die ein verwendet.so als native Unterstützung. Ich habe den Reißverschluss geschlossenSigar Wenn ich my.jar von cmd aus starte, muss ich Folgendes eingeben:

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

Ja das funktioniert, ABER ich möchte ein bauenBündel Glas, das zu sagen, enthält .so in Glas und verwendet es innerhalb des Glases. Meine Frage lautet also:So legen Sie fest, dass der Pfad java.library.path auf .so-Dateien in dieser JAR-Datei verweist. Zum Schluss möchte ich es so machen

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

Meinebuild.xml sieht aus wie:

 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>

Inzwischen habe ich gerade die Unzufriedene Link-Ausnahme erhalten, als ich sie ausführe(*) Weg.

Eine weitere relevante Frage lautet: Wie füge ich eine Datei zu einem bestimmten Speicherort im Jar hinzu? Im obigen Beispiel<fileset dir="${lib.dir}" includes="*.so"/> wird * .so in die Wurzel von jar setzen, was ist, wenn ich das ändern möchte?

Danke im Voraus!

Antworten auf die Frage(0)

Ihre Antwort auf die Frage