Ant构建可运行jar包中有关依赖jar包碰到的问题

最近碰到一个Ant构建可运行jar包时关于依赖jar包路径问题,总结如下

1.因依赖jar包需在主jar包程序的MANIFEST.MF的Class-Path中指出,而且有一系列的要注意的地方

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.7.1
Created-By: 19.1-b02 (Sun Microsystems Inc.)
Main-Class: com.umd.tasker.Main
Class-Path: lib/activation.jar lib/commons-beanutil
 s.jar lib/commons-codec.jar lib/commons-collections-3.2.jar

Class-Path每一行前后都需要空格,最后一行需要两次回车,而且每行都必须顶格

2.Class-Path按如上显示的话,相关依赖的jar包就需要放在主运行jar包同级目录的lib文件夹中

3.在Build.xml中,需要指定Class-Path

<target name="build-zip" depends="build-clean,build-classes">
<jar destfile="${build.zip.file}">
<fileset dir="${build.class.dir}">
<include name="**/*.*"/>
</fileset>
<manifest>
<attribute name="Main-Class" value="com.umd.tasker.Main"/>
<attribute name="Class-Path" value="lib/actication.jar lib/comm ........."/>
</manifest>
</jar>
</target>
 

4.如上所写每次新增jar包都得改,比较麻烦,可以在Ant中用如下方法替换

<target name="build-zip" depends="build-clean,build-classes">
<pathconvert property="mf.classpath" pathsep=" "> 
<path refid="build.classpath" />
<mapper>
<chainedmapper>
<flattenmapper />
<globmapper from="*" to="lib/*" />
</chainedmapper>
</mapper>
</pathconvert>
<jar destfile="${build.zip.file}">
<fileset dir="${build.class.dir}">
<include name="**/*.*"/>
</fileset>
<manifest>
<attribute name="Main-Class" value="com.umd.tasker.Main"/>
<attribute name="Class-Path" value="${mf.classpath}"/>
</manifest>
</jar>
</target>
 

这样就会自动生成Class-Path了

5.eclipse中导出可运行jar包可以将相关依赖的jar包都打进主运行jar包中,这是怎么做到的呢?下次研究

posted on 2013-03-26 09:25  liangge0218 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/liangge0218/archive/2013/03/26/3292375.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值