写蚂蚁目标需要帮助

时间:2010-03-25 06:11:05

标签: command-line ant

我是编写蚂蚁目标的新手。 我要从命令行传递3个参数到java程序。所有这些都是可选的,可以有空格。 我怎么能用蚂蚁目标做到这一点。

我试过使用但是如果它用空格分隔参数。所以,如果我的第一个论点有空格那么 它将空格后的单词作为第二个参数。

我也试过用                 它需要空格,但必须使参数成为必需的。

我是我的java代码,如果缺少任何这些参数,我将为这些参数设置默认值。

我该怎么做。

2 个答案:

答案 0 :(得分:0)

如果您准备好了JAR文件,则可以制作此目标:

<target name="runJar">
   <java jar="/home/phil/application.jar" failonerror="true" fork="true" inputstring="">
      <arg value="arg1" />
      <arg value="arg2" />
      <arg value="arg3" />
   </java>
</target>

如果你需要编译,然后运行,那就试一试:

<target name="buildJava">
   <javac srcdir="srcDir" destdir="binDir" />
</target>
<target name="runJava" depends="buildJava">
   <java classname="classname" failonerror="true" fork="true" inputstring="">
     <arg value="arg1"/>
     <arg value="arg2"/>
     <arg value="arg3"/>
     <classpath>
       <pathelement path="binDir"/>
     </classpath>
   </java>
</target>

failonerror指定如果执行System.exit(1),则会导致构建失败。

编辑以添加输出

我让这个类在进入类时首先在括号中吐出参数,所以你可以看到它以你想要的方式处理空格。我使用arg1作为“arg1 2 3”

buildJava:

runJava:
[java] Arg = [arg1 2 3]
[java] Arg = [arg2]
[java] Arg = [arg3]

答案 1 :(得分:0)

你的问题对我来说不是很清楚。但我认为你想要的是java程序,你可以传递参数。如果只有一个参数,那么它将另外两个作为默认值。 所以你可以做这样的事情。我没试过这个

<!-- These properties will no set since you are passing argument from -D param 

只有在没有参数时才将它们设置为空。 - &GT;               

    <target name="run">
       <java jar="YourJavaClassOrJAR" failonerror="true" fork="true" inputstring="">
          <arg value="${arg1}" />
          <arg value="${arg2}" />
          <arg value="${arg3}" />
       </java>
    </target>

从命令行可以说ant -Darg1=xxx