![](/img/trans.png)
[英]How to read a file from another children dir of the parent dir of the current dir in Java?
[英]error running java in another dir from ant
我在包客戶端中有一個簡單的類FabricClient,帶有一個公共的靜態void main()。 該軟件包位於我項目的“ bin”目錄中。 在命令行的bin目錄中,我可以按以下方式執行此類中的main:
user@sys /c/projects/myproject/bin
$ java -classpath .;c:\dir\my.jar client.FabricClient
我想從手動運行Java命令的父目錄(/ c / projects / myproject)執行ant build.xml文件。 我嘗試使用dir屬性,如下所示:
<target name="run-client">
<java classname="client.FabricClient"
classpath="${classpath}"
fork="true"
failonerror="true"
dir="./bin">
</java>
</target>
我的classpath變量確實具有當前目錄以及在命令行上使用的my.jar目錄(我的ant命令,用於編譯該類,可以在同一個變量下正常工作)
這是用於生成類路徑的設置
<property name="my.jar" location="c:\dir\my.jar" />
<property name="classpath" location=".:${my.jar}:." />
我收到典型的java.lang.NoClassDefFound錯誤:client / FabricClient
我正在使用Ant版本1.7.0
如果我將build.xml文件移到bin中並刪除dir屬性,則可以正常工作。 您可以從本地目錄以外的其他目錄運行Java嗎? 我認為這就是dir屬性的作用。
ant中的路徑通常是這樣引用的:
<java classname="client.FabricClient"
fork="true"
failonerror="true"
dir="./bin">
<classpath>
<pathelement location="C:/dir/my.jar"/>
</classpath>
它更具可讀性和可靠性
您的類路徑應包含文件 my.jar,而不是my.jar所在的目錄 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.