gpt4 book ai didi

java - 如何让 Ant 识别项目文件夹中的文件?

转载 作者:太空宇宙 更新时间:2023-11-04 04:17:28 24 4
gpt4 key购买 nike

我使用 Eclipse 将文件“testFile.txt”作为参数传递给我的 Java 程序,当我选择正常运行它时,它工作正常。如果我在 Eclipse 中运行 Ant build.xml,并将“testFile.txt”设置为参数,则会收到错误:

构建失败项目“MyProj1”中不存在目标“testFile.txt”。

如果我使用 Ant 并使用以下行在 Linux shell 中传递文件:

ant -Dargs="testFile.txt" run

它传递了字符串值“testFile.txt”,但找不到相应的文件。该文件位于 MyProj1 文件夹中,该文件夹是 src 和 build.xml 所在的位置。我需要移动 .txt 文件或修改构建文件吗?如果我必须修改构建文件,我需要什么?

<target name="run" depends="compile" description="run the project">
<java dir="${build.dir}" classname="${main.class}" fork="yes">
<arg line="${args}"/>
</java>
</target>

最佳答案

添加

<arg file="testFile.txt"/>

到java任务,即:

<target name="run" depends="compile" description="run the project">
<java dir="${build.dir}" classname="${main.class}" fork="yes">
<arg line="${args}"/>
<arg file="testFile.txt"/>
</java>
</target>

这将创建/path/to/build.xml/directory 的绝对路径,这是您的文件所在的位置。

如果您的文件位于子目录中,请将其添加到 arg 文件值之前,../也可以按照您期望的方式工作。

编辑:

目录结构

c:\project
|
+---PassFileViaAnt.class
+---build.xml
+---foo.txt

类(class):

public class PassFileViaAnt {
public static void main( String[] args ) {
for( String arg : args ) {
System.out.println( arg );
}
}
}

任务:

<target name="run" description="run the project">
<java dir="${build.dir}" classname="PassFileViaAnt" fork="yes">
<arg file="${args}" />
</java>
</target>

命令:

c:\project> ant run -Dargs="foo.txt"

输出:

[java] C:\project\foo.txt

命令:

c:> ant -f c:\project\build.xml run -Dargs="foo.txt"

输出

[java] C:\project\foo.txt

关于java - 如何让 Ant 识别项目文件夹中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15588714/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com