<project name="horizontal" default="javac" basedir="."> <description>Shows how multi-column report templates could be filled horizontally.</description> <property name="class.name" value="HorizontalApp" />
<property name="file.name" value="HorizontalReport" />
<property name="classes.dir" value="../../../build/classes" />
<property name="lib.dir" value="../../../lib" />
<property name="fonts.dir" value="../../fonts" />

<path id="classpath">
<pathelement location="./"/>
<pathelement location="${classes.dir}" />
<pathelement location="${fonts.dir}" />
<fileset dir="${lib.dir}">
<include name="**/*.jar"/>
</fileset>
<target name="print" description="Sends the report in the .jrprint file to the printer.">
<java classname="${class.name}" fork="true">
<arg value="-Tprint"/>
<arg value="-F${file.name}.jrprint"/>
<classpath refid="classpath"/>
</java>
</target> <target name="pdf" description="Generates a PDF version of the report by converting the .jrprint file.">
<java classname="${class.name}" fork="true">
<arg value="-Tpdf"/>
<arg value="-F${file.name}.jrprint"/>
<classpath refid="classpath"/>
</java>
</target>
</project>

解决方案 »

  1.   

    我就说说我理解的吧,这个ant文件里有两个任务,一个是print,另一个是pdf,其中description就是这两个任务的解释,大概就是打印和根据某个文件产生PDF文件吧。其中print任务通过执行一个名为HorizontalApp的类或工程来完成打印,执行时这个类或工程时需要两个参数-Tprint和-F${file.name}.jrprint,第二个参数file.name就是前面定义的HorizontalReport。classpath表示这个类执行时需要的类包所在的路径。同理,pdf任务也是这样的。不知道你明不明白
      

  2.   

    整个project定义了两个target,都是通过自定义task完成主要工作,默认的javac倒是没有发现.其中<target name="print" description……>把报表文件打印输出,传递两个参数:-T print -F HorizontalReport.jrprint给HorizontalApp这个task;另外一个<target name="pdf" description……>把报表格式从.jrprint转换为.pdf格式,通过传递两个参数:-T pdf、-F HorizontalReport.jrprint给HorizontalApp.具体功能看你的HorizontalApp!
      

  3.   

    project 给出一个构建文件总体名称horizontal,并且标识一个基础目录和缺省目标javac。当Ant装入文件时,目标会首先锁定缺省目标的调用。缺省基准目录设置为build.xml的当前目录。property 是一些属性设置,以备后用。
    path 块构建了Ant 构建应用是要使用的classpath。它每次都会执行而不管是选择哪一个目标。通常,这是一个WEB-INF/lib 文件夹中的JAR的清单
    target块构建了两个<java>任务,并提供了<arg>元素给指定的java文件传递value。
      

  4.   

    真是谢谢上面两位,javac和compile我没有列出来.TARGET我只写了,这两个.还问一个问题,怎么样在java 程序里面实现ant -p ,ant -其它参数 的功能?
    因为我是想在程序里面直接实现打印/生成PDF文件等这些功能.
      

  5.   

    <java classname="${class.name}" fork="true">
    <arg value="-Tpdf"/>
    <arg value="-F${file.name}.jrprint"/>
    <classpath refid="classpath"/>
    </java>这样段代码是不是和直接在dos下运行是一样的?另外有没有中文的资料啊?
      

  6.   

    是一样的
    它新建一个进程来执行JAVA命令
    另外,我有ANT的中英文资料,搂主写下你的EMAIL.
      

  7.   

    [email protected]  msn:[email protected]
    真是太谢谢了啊