我已经找到了关于如何设置类路径的示例,以便可以执行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