其实只要在写<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%
本文介绍了一种将第三方依赖包整合进主Jar文件的方法,通过使用Ant脚本中的<zipgroupfileset>标签,可以有效地避免运行时因缺失依赖而产生的错误。此外,还提供了一种通过批处理文件设置classpath来包含所需Jar文件的替代方案。
1088

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



