我是编写蚂蚁目标的新手。 我要从命令行传递3个参数到java程序。所有这些都是可选的,可以有空格。 我怎么能用蚂蚁目标做到这一点。
我试过使用但是如果它用空格分隔参数。所以,如果我的第一个论点有空格那么 它将空格后的单词作为第二个参数。
我也试过用 它需要空格,但必须使参数成为必需的。
我是我的java代码,如果缺少任何这些参数,我将为这些参数设置默认值。
我该怎么做。
答案 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