我找到了有关如何设置类路径以便可以执行 Java 程序或包含外部 jar 的示例,但不能同时包含两者。我尝试将多个示例合并到一个文件中失败了。
我的源 .java 文件在 src 目录中,我要执行的文件是 src/TEDI.java,类文件被正确放入构建目录,我所有的 jar 都在目录 jung2-2_0_1 中。我可以使用以下 ant 文件编译我的程序,但不能执行:
<?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>
当我运行 ant 时,它会很好地完成清理、创建和编译目标,然后当它开始执行时,它会说:Could not find build/TEDI.class. Make sure you have it in your classpath
无论如何,我希望有人能告诉我我在该path
部分做错了什么。在阅读了一个关于如何创建 ant 目标以执行文件的示例后,我添加了pathelement
一点,但它根本没有帮助。有很多示例,其中很多示例以不同的方式实现相同的目标(虽然没有一个完全符合我的目标),所以我不知道哪种方法适合我正在尝试的方法去做。任何帮助或想法将不胜感激。
编辑:根据 Sandro 的回答更改<pathelement location="${build}"/>
为<pathelement location="${output}"/>
,但它根本不会更改错误消息。