ant 打可执行jar的build.xml

原创 2007年09月27日 13:07:00
网上有很多打可执行jar包的文章,但是没有说明如何让打的可执行jar包可以调用外部库。

先说一下我的目录结构
 |build.xml
|etc
|doc
|src -- com-- dyoldfish -- parser
|
|lib
|bin
|dest


下面的build.xml的说明

方法1、把别的jar包库,解压到咱们的源码目录下面,然后和咱们的源码一起打成可执行jar包

build.xml 如下:

<?xml version="1.0"?>
<project name="parser" default="compile" basedir=".">
    <target name="init">
        <mkdir dir="bin"> </mkdir>
        <mkdir dir="dest"> </mkdir>
    </target>

    <path id="classpath.local">
        <pathelement location="./lib/log4j-1.2.14.jar"/>
        <pathelement location="./lib/mysql-connector-java-5.0.7-bin.jar"/>
        <pathelement location="./lib/je-3.2.43.jar"/>
        <pathelement location="./lib/nekohtml.jar"/>
        <pathelement location="./lib/Tidy.jar"/>
        <pathelement location="./lib/xercesImpl.jar"/>
        <pathelement location="bin"/>
        <pathelement location="bin/com"/>
        <pathelement location="."/>
    </path>

    <target name="compile" depends="init">
        <javac destdir="bin" srcdir="src">
            <classpath refid="classpath.local"/>
        </javac>
    </target>

    <target name="run" depends="compile">
        <java classname="bin/Parser" classpath="classpath.local"> </java>
    </target>

    <target name="dest" depends="compile">
        <mkdir dir="dest"></mkdir>
        <jar jarfile="dest/parser.jar" basedir="bin"></jar>
    </target>

    <target name="clean">
        <delete dir="bin"> </delete>
        <delete dir="dest"> </delete>
    </target>

    <target name="unziplib">
        <unjar dest="bin">
            <fileset dir="lib" includes="*.jar" />
        </unjar>
    </target>

    <target name="jar" depends="compile,unziplib">
        <jar jarfile="dest/Parser.jar" basedir="bin" >
        <manifest>
            <attribute name="Main-class" value="com.dyoldfish.parser.Parser"/>
        </manifest>
    </jar>
    <copy  todir="dest">
        <fileset dir="doc">
            <include name="Parser.bat"/>
            <include name="clean.bat"/>
        </fileset>
    </copy>
  </target>

</project> 

方法2、把别的jar包库,放在咱们的可执行jar包外面,然后在咱们的jar包里面配置 classpath
build.xml如下:

<?xml version="1.0"?>
<project name="parser" default="compile" basedir=".">
    <target name="init">
        <mkdir dir="bin"> </mkdir>
        <mkdir dir="dest"> </mkdir>
    </target>

    <path id="classpath.local">
        <pathelement location="./lib/log4j-1.2.14.jar"/>
        <pathelement location="./lib/mysql-connector-java-5.0.7-bin.jar"/>
        <pathelement location="./lib/je-3.2.43.jar"/>
        <pathelement location="./lib/nekohtml.jar"/>
        <pathelement location="./lib/Tidy.jar"/>
        <pathelement location="./lib/xercesImpl.jar"/>
        <pathelement location="bin"/>
        <pathelement location="bin/com"/>
        <pathelement location="."/>
    </path>

    <target name="compile" depends="init">
        <javac destdir="bin" srcdir="src">
            <classpath refid="classpath.local"/>
            <!--include name="com/**"/-->
        </javac>
        <copy  todir="bin">
            <fileset dir="doc" includes="run.bat"/>
        </copy>
    </target>

    <target name="run" depends="compile">
        <java classname="bin/Parser" classpath="classpath.local"> </java>
    </target>

    <target name="dest" depends="compile">
        <mkdir dir="dest"></mkdir>
        <jar jarfile="dest/parser.jar" basedir="bin"></jar>
        <!--copy todir="dest"/-->
            <!--fileset dir="bin" includes="*.class" /-->
        <!--/copy-->
    </target>

    <target name="clean">
        <delete dir="bin"> </delete>
        <delete dir="dest"> </delete>
    </target>

    <target name="jar" depends="compile">
        <jar jarfile="dest/Parser.jar" basedir="bin"
        includes="com/**/*.class">
        <manifest>
            <attribute name="Main-class" value="com.dyoldfish.parser.Parser"/>
            <attribute name="Class-path" value=". ../lib/log4j-1.2.14.jar ../lib/mysql-connector-java-5.0.7-bin.jar ../lib/je-3.2.43.jar ../lib/nekohtml.jar ../lib/Tidy.jar ../lib/xercesImpl.jar"/>
        </manifest>
        <!--fileset dir="lib" includes="*.jar" /-->
    </jar>
    <copy  todir="dest">
        <fileset dir="doc" includes="Parser.bat"/>
    </copy>
  </target>

</project>



以上的调用方法都是:
          ant jar
    可执行jar包就编译好了

Ant打可执行jar包指南

笔者以前在项目中使用的最多的打包工具要数fatjar了。打包的时候习惯于先指定可执行类,然后将所有引用的jar包以及源码生成的class一起打到一个包里面,运行程序的时候直接运行命令:java –ja...
  • telnetor
  • telnetor
  • 2011年11月27日 01:22
  • 32370

ant build.xml 打包可执行jar

依赖的第三方lib /lib/第三方依赖.jar testDemo.jar c:\java\jdk1.6\bin\java -jar testDemo.jar -------...
  • jbgtwang
  • jbgtwang
  • 2014年09月04日 19:55
  • 5867

Ant编译打jar包 build.xml

  • Sherry_Rui
  • Sherry_Rui
  • 2015年09月22日 10:33
  • 3507

【ant项目构建学习点滴】--(3)打包及运行jar文件

--> runJava... --> cpmpling... ...
  • zhang__tianxu
  • zhang__tianxu
  • 2013年11月20日 07:47
  • 2283

ant打包jar的build.xml配置

以上,可以根据自己项目的要求改变todir和fileset内容,myeclipse中执行ant build即可...
  • dongfengkuayue
  • dongfengkuayue
  • 2015年06月18日 10:40
  • 1262

Ant打可执行jar包指南

转自:http://blog.csdn.net/telnetor/article/details/7015935    笔者以前在项目中使用的最多的打包工具要数fatjar了。打包的时候习...
  • fhx007
  • fhx007
  • 2015年01月03日 23:55
  • 2055

ant的安装、使用,build.xml简单编写

如果没有eclipse集成环境可以自己下载ant http://www.apache.org/ 下载最新的版本 解压ant 后设置ANT_HOME, PATH中添加ANT_HOME目录下的bin...
  • bao19901210
  • bao19901210
  • 2014年04月16日 17:43
  • 18585

ant build.xml任务运行顺序

以下,摘取来自http://wenku.baidu.com/view/cceb6d2867ec102de2bd89d1.html的代码,对build.xml中制定的任务运行顺序进行详细的解释。 一、...
  • chenxiaoxiao1991
  • chenxiaoxiao1991
  • 2015年03月06日 16:14
  • 387

Ant 的最完整build.xml(转)

转:http://www.cnblogs.com/clarkchen/archive/2011/03/10/1980194.html
  • ganxunzou
  • ganxunzou
  • 2014年11月16日 16:58
  • 16625

Ant之build.xml详解

ANT build.xml文件详解(一) Ant的概念  可能有些读者并不连接什么是Ant以及入可使用它,但只要使用通过Linux系统得读者,应该知道 make这个命令。当编译Lin...
  • bao19901210
  • bao19901210
  • 2014年04月16日 14:21
  • 55409
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ant 打可执行jar的build.xml
举报原因:
原因补充:

(最多只允许输入30个字)