使用 Ant 运行具有命令行参数的程序

2022-08-31 16:52:47

我的程序获取命令行参数。使用蚂蚁时如何通过?


答案 1

延伸理查德·库克的答案。

以下是运行任何程序(包括但不限于Java程序)的任务:ant

<target name="run">
   <exec executable="name-of-executable">
      <arg value="${arg0}"/>
      <arg value="${arg1}"/>
   </exec>
</target>

以下是从文件运行 Java 程序的任务:.jar

<target name="run-java">
   <java jar="path for jar">
      <arg value="${arg0}"/>
      <arg value="${arg1}"/>
   </java>
</target>

您可以从命令行调用任一操作,如下所示:

ant -Darg0=Hello -Darg1=World run

确保使用语法;如果您运行以下命令:-Darg

ant run arg0 arg1

然后会尝试运行目标和 .antarg0arg1


答案 2

如果您不想为每个可能的参数处理单独的属性,我建议您使用:

<arg line="${args}"/>

您可以检查是否未使用具有属性的特定目标设置属性,并在内部执行以下操作:unless

<input message="Type the desired command line arguments:" addProperty="args"/>

把它们放在一起可以得到:

<target name="run" depends="compile, input-runargs" description="run the project">
  <!-- You can use exec here, depending on your needs -->
  <java classname="Main">
    <arg line="${args}"/>
  </java>
</target>
<target name="input-runargs" unless="args" description="prompts for command line arguments if necessary">
  <input addProperty="args" message="Type the desired command line arguments:"/>
</target>

您可以按如下方式使用它:

ant
ant run
ant run -Dargs='--help'

前两个命令将提示输入命令行参数,而后者则不会。


推荐