2014-02-05 65 views
0

我有這個question批處理文件。我已經知道,不是這個苦差事,我可以通過Ant自動化這個;這是我聽說的工具。我將如何從螞蟻運行這些程序

我想運行此兩個階級,我有一些問題,

  • 我是否需要兩個run的任務,因爲我需要單獨運行這些程序一個接一個?
  • 我該如何運行這個程序如果我jar呢?我需要兩個dist任務來創建單獨的罐子嗎?關鍵是我有兩個入口點?
+2

使用Ant,你可以使用[java的任務(HTTP ://ant.apache.org/manual/Tasks/java.html) – PeterMmm

+0

爲什麼要使用Ant?如果你不構建Java程序,使用Ant實際上會使事情變得更加複雜。 –

回答

2

這裏有一個快速示例build.xml,它將構建,jar和運行。假設你已經安裝了Ant,那麼只需在基本文件夾中運行ant,剩下的工作就完成了。我的輸出如下所示。

<project name="myproject" basedir="." default="all"> 

<property name="build.dir" value="${basedir}/build"/> 
<property name="dist.dir" value="${basedir}/dist"/> 
<property name="src.dir" value="${basedir}/src"/> 
<property name="jar.name" value="myjar.jar"/> 
<property name="classes.dir" value="${build.dir}/classes"/> 
<property file="${basedir}/build.properties"/> 

<target name="all" depends="clean, compile, jar, run"/> 

<target name="clean" description="cleans all build directories"> 
    <delete dir="${build.dir}"/> 
</target> 

<target name="compile" description="compiles the project"> 
    <mkdir dir="${classes.dir}"/> 
    <javac srcdir="${src.dir}" destdir="${classes.dir}" debug="on" deprecation="on" optimize="on" fork="true" memoryMaximumSize="256m"> 
     <include name="**/*.java"/> 
    </javac> 
</target> 

<target name="jar" description="Jars the files and signs the jar file"> 
    <jar jarfile="${build.dir}/${jar.name}"> 
     <manifest> 
      <attribute name="Built-By" value="${user.name}"/> 
     </manifest> 
     <fileset dir="${classes.dir}"> 
      <include name="**/*.*"/> 
     </fileset> 
    </jar> 
</target> 

<target name="run" description="runs tasks"> 
    <echo>Running task 1</echo> 
    <java classname="test.Main1"> 
    <classpath> 
     <pathelement location="${build.dir}/${jar.name}"/> 
    </classpath> 
    </java> 
    <echo>Running task 2</echo> 
    <java classname="test.Main2"> 
    <classpath> 
     <pathelement location="${build.dir}/${jar.name}"/> 
    </classpath> 
    </java> 
</target> 
</project> 

這裏是Main1的src。 Main2只是將Main1更改爲Main2 封裝測試;

public class Main1 { 
    public static void main(String[] args) { 
     System.out.println("Task 1..."); 
    } 
} 

輸出: C:\客戶\的StackOverflow>螞蟻構建文件 :build.xml文件

clean: 
    [delete] Deleting directory c:\Customers\StackOverflow\build 

compile: 
    [mkdir] Created dir: c:\Customers\StackOverflow\build\classes 
    [javac] Compiling 2 source files to c:\Customers\StackOverflow\build\classes 

jar: 
    [jar] Building jar: c:\Customers\StackOverflow\build\myjar.jar 

run: 
    [echo] Running task 1 
    [java] Task 1... 
    [echo] Running task 2 
    [java] Task 2... 

all: 

BUILD SUCCESSFUL 
Total time: 0 seconds 

c:\Customers\StackOverflow> 
0

使用

<sequential> 

<!-- call target1 --> 
<!-- call target2 --> 

</sequential>