【发布时间】:2012-12-21 14:21:18
【问题描述】:
可能重复:
Use Ant for running program with command line arguments
我编写了一个 java 程序,它将几个文件名作为命令行参数(输入到 main.xml 的 String[] args 数组中)。
现在我需要编写一个 Ant 构建文件。
如何执行此命令:
ant run SampleFile1.txt SampleFile2.txt ...
获取这些参数并将它们传递给我的 main?
这是我的示例 Ant 文件:
<?xml version="1.0" ?>
<project name="MyProgram" default="main">
<property name="src.dir" value="src"/>
<property name="build.dir" value="build"/>
<property name="classes.dir" value="${build.dir}/classes"/>
<property name="jar.dir" value="${build.dir}/jar"/>
<property name="main-class" value="MyProgram.MainClass"/>
<target name="clean">
<delete dir="${build.dir}"/>
</target>
<target name="compile">
<mkdir dir="${classes.dir}"/>
<javac srcdir="${src.dir}" destdir="${classes.dir}"/>
</target>
<target name="jar" depends="compile">
<mkdir dir="${jar.dir}"/>
<jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}">
<manifest>
<attribute name="Main-Class" value="${main-class}"/>
</manifest>
</jar>
</target>
<target name="run" depends="jar">
<java jar="${jar.dir}/${ant.project.name}.jar" fork="true">
//now when I run it here, I want it to get the arguments I input when I do ant run. for example: ant run file1.txt, file2.txt <- I want those to go to my String[] args of the main
</java>
</target>
<target name="clean-build" depends="clean,jar"/>
<target name="main" depends="clean,run"/>
【问题讨论】:
-
这对我不起作用,它给了我错误 Target "File.txt" does not exist in the project "SampleProj".
-
你执行的命令是什么?
-
java MyProgram file1.txt file2.txt
-
你还有一个名为
build.xml的文件吗?你能把那个贴出来。默认情况下,runnintant在这个文件中执行构建系统。如果不知道该文件是什么样子,我们将无法帮助您。 -
@DavidW。我将其添加到问题中。