簡體   English   中英

如何使用來自Ant的相對路徑運行Java類?

[英]How can I run a java class with a relative path from Ant?

我在具有主要方法的java類中有一個File定義,並且我希望能夠從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類中,它是相對於source的根目錄的。

有沒有辦法覆蓋Ant任務中的基本目錄?

您可以通過多種方式進行此操作。 也許最簡單的方法是在java任務中為dir屬性指定一個相對值,例如:

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

您還需要使用fork來工作,這可能會有其他副作用。

關於您的特定問題:許多任務支持dir屬性,有些任務使用嵌套文件集,因此您必須在嵌套元素上指定目錄。

另一種方法是使用ant任務執行目標。 在那里指定的目錄將用作目標中所有任務的基礎。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM