我已經找到了關於如何設置類路徑的示例,以便可以執行Java程序或包含外部罐子,但不能同時包含這兩個。我試圖在一個文件中合併多個示例失敗。如何在ant文件中設置classpath以執行Java程序幷包含外部jar?
我的.java源文件位於src目錄下,我要執行的文件是src/TEDI.java,類文件正確放入編譯目錄,並且所有的jar文件都位於目錄jung2-2_0_1 。我可以讓我的程序編譯,但不執行,使用下面的螞蟻文件:
<?xml version="1.0"?>
<project name="TEDI" basedir="." default="execute">
<property name="src" value="src"/>
<property name="output" value="build"/>
<property name="lib" value="jung2-2_0_1"/>
<target name="execute" depends="compile">
<echo>
Executing TEDI.
</echo>
<java classname="${output}/TEDI.class">
<classpath refid="java"/>
</java>
</target>
<target name="compile" depends="create">
<echo>
Compiling source files.
</echo>
<javac destdir="${output}">
<src path="${src}"/>
<classpath refid="java"/>
</javac>
</target>
<target name="clean">
<echo>
Deleting old class files.
</echo>
<delete dir="${output}"/>
</target>
<target name="create" depends="clean">
<echo>
Creating output directory.
</echo>
<mkdir dir="${output}"/>
</target>
<path id="java">
<pathelement location="${output}"/>
<fileset dir="${lib}">
<include name="*.jar"/>
</fileset>
</path>
</project>
當我運行螞蟻,它不乾淨,創建和編譯的目標就好了,然後當它得到執行它說:Could not find build/TEDI.class. Make sure you have it in your classpath
無論如何,我希望有人能告訴我我在做什麼錯在path
部分。在閱讀關於如何創建一個執行文件的螞蟻目標的例子之後,我添加了pathelement
位,但它根本沒有幫助。有很多的例子,他們中的很多人做不同的事情來實現同樣的事情(雖然沒有做我正在做的事情),所以我無法弄清楚我正在嘗試哪種方式是正確的去做。任何幫助或想法將不勝感激。
編輯:根據Sandro的回答將<pathelement location="${build}"/>
更改爲<pathelement location="${output}"/>
,但它根本不會更改錯誤消息。
太棒了,這樣做,非常感謝! – Maltiriel 2012-04-09 20:11:52