我正在创建一个我编写的javaagent的jar文件。但是,该代理依赖于另一个java库。
所以,我想知道,如何将我的程序正在使用的整个包包含在jar文件中,以便在jar执行时可以使用它?
答案 0 :(得分:2)
解压缩你想要包含的jar并把它放到最后一个jar中。以下是为您执行此操作的ant命令。
<target name="package">
<!-- Staging is simply a temporary directory for exploding the jar files. You
can call the directory whatever you want. -->
<property name="staging.dir" location="staging"/>
<mkdir dir="${staging.dir}"/>
<unjar dest="${staging.dir}">
<fileset dir="lib" >
<include name="*"/>
</fileset>
</unjar>
<mkdir dir="classes"/>
<javac debug="on" srcdir="src" destdir="classes" target="1.5" includes="**/*">
<classpath refid="build.class.path"/>
</javac>
<jar destfile="Product.jar"
basedir="classes"
excludes="**/Test.class">
<fileset dir="${staging.dir}"/>
</jar>
<!-- Delete the temporary staging directory. -->
<delete dir="${staging.dir}" />
</target>