其实只要在写<Jar>标签的时候加入一句话,就可以把要用到的第三方的包加入到我们目标包里面去了
<jar destfile="${output.dir}/main.jar" >
<zipgroupfileset dir="${lib.dir}" includes="*.jar" />
<fileset dir="${output.dir}\bin"></fileset>
<!-- set mainfest information to manifest -->
<manifest>
<attribute name="Implementation-Maker" value="bryan.liu" />
<attribute name="Implementation-Time" value="${touch.time}" />
</manifest>
</jar>
就是<zipgroupfileset>这个标签可以把我们指定的jar一起包到我们的目的Jar中了,这样当我们运行main.jar的时候就不会出现第三方类找不到的错误了。
当然,更普遍的方法是在运行的时候写个batch 把要用到的Jar放到classpath中,这样就避免了目标Jar过大(如果Jar很多的话)
E.g.
@echo on
set CLASSPATH_BAK=%CLASSPATH%;
set CLASSPATH=%CLASSPATH%;libs\log4j-1.2.14.jar;libs\commons-logging-1.1.jar;main.jarjava com.x.y.MainClass
set CLASSPATH=%CLASSPATH_BAK%
本文介绍了一种使用Ant将第三方依赖项整合进最终Jar文件的方法。通过<zipgroupfileset>标签可以有效地将所需的第三方Jar文件包含在内,避免运行时因缺失依赖而引发的问题。此外,还提供了一个在命令行设置classpath的示例。
1083

被折叠的 条评论
为什么被折叠?



