簡體   English   中英

從ant在另一個目錄中運行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.

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