gpt4 book ai didi

java - 如何从 Ant 运行具有相对路径的 java 类?

转载 作者:太空宇宙 更新时间:2023-11-04 11:03:15 25 4
gpt4 key购买 nike

我在一个 java 类中有一个文件定义,它有一个 main 方法,并且我希望能够从 Eclipse 运行菜单以及使用相对路径的 Ant 构建文件运行它。

这仅在从 Eclipse 运行菜单运行 main 方法时有效:

private static final File location = new File("./implementation/src/xml/data");

这仅在 Ant 中运行时有效:

private static final File location = new File("./src/xml/data");

该项目的结构如下:

MyProject
|
|
implementation
| |
| |
src build.xml

这是 Ant 任务:

<target name="run">
<java classname="test.XMLCreator" classpathref="compile-classpath" >
<classpath>
<pathelement location="${classes}" />
</classpath>
</java>
</target>

我理解这是因为在 Ant 中,路径是相对于构建文件的位置的,而在 java 类中,它是相对于源代码的根目录的。

有没有办法覆盖 Ant 任务中的基本目录?

最佳答案

有几种方法可以做到这一点。也许最简单的方法是为 java 中的 dir 属性指定一个相对值。任务,例如:

<java classname="test.XMLCreator" classpathref="compile-classpath" dir=".." fork="true">

您还需要使用fork才能使其工作,这可能会产生其他副作用。

关于您的具体问题:许多任务支持 dir 属性,有些任务使用嵌套文件集,因此您必须在嵌套元素上指定目录。

另一种方法是使用 ant 执行目标任务。此处指定的目录将用作目标中所有任务的 basedir。

关于java - 如何从 Ant 运行具有相对路径的 java 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46679880/

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