Java 无法使用ANT构建正在工作的.jar文件

Java 无法使用ANT构建正在工作的.jar文件,java,ant,jar,Java,Ant,Jar,我在eclipse中制作了一个简单的“AntExecutor”应用程序,可以通过编程方式运行ant任务,并且可以正常工作。但是为了大学的目的,我需要让它独立于IDE。所以,有趣的是,我正在努力创建ant任务,它将编译、构建我的“AntExecutor”应用程序(执行ant任务):) 我当前尝试为其定义ant任务的精简版本仅包含“storageAccess”包中的一个源文件: ./src/storageAccess/AntExecutor.java AntExecutor.java在以下位置使用

我在eclipse中制作了一个简单的“AntExecutor”应用程序,可以通过编程方式运行ant任务,并且可以正常工作。但是为了大学的目的,我需要让它独立于IDE。所以,有趣的是,我正在努力创建ant任务,它将编译、构建我的“AntExecutor”应用程序(执行ant任务):)

我当前尝试为其定义ant任务的精简版本仅包含“storageAccess”包中的一个源文件:

./src/storageAccess/AntExecutor.java
AntExecutor.java在以下位置使用了一些库:

./lib
生成文件位于:

./build.xml
java还需要ant库来执行ant任务,因此它们在编译时添加到CP中。内部版本文件:

<classpath path="${build};D:/DevTools/apache-ant-1.9.8/lib/;"/>
所以看起来storageAcces.AntExecutor类确实成功地编译成了.jar文件

但是,如果我尝试这样运行它:
java-jarbuild/jar/RunExecutor.jar

我得到这个错误:

错误:无法找到或加载主类storageAccess.AntExecutor

主要问题:

为什么它找不到清晰的类(如“jar-tf”所示),我该如何解决这个问题

同样,向CP添加ant/lib/*.jar文件以编译和运行“RunExecutor.jar”的正确方法是什么? 可以像我现在这样指定它们的路径吗

<attribute name = "Class-Path" value = "D:/DevTools/apache-ant-1.9.8/lib/;"/>

或者,也许我应该使用通配符,比如:

<attribute name = "Class-Path" value = "D:/DevTools/apache-ant-1.9.8/lib/*.jar;"/>

或者,我应该一个接一个地添加所有文件吗

<attribute name = "Class-Path" value = "D:/DevTools/apache-ant-1.9.8/lib/ant.jar;"/> , etc...
等。。。
的问题

<attribute name = "Class-Path" value = "D:/DevTools/apache-ant-1.9.8/lib/;"/>


您还可以将所需的库放在同一个jar文件中,默认情况下,它们将添加到类路径中。

请参阅:阅读Mark的建议后,我使用该线程中建议的属性将jar文件的类路径重新定义为ant-libs。这解决了问题。然而,该公司并没有澄清为何解决了这个问题。我没有得到“java.lang.NoClassDefFoundError”(正如Marks中的人所建议的那样)。我的主类是“找不到”的,主方法以前甚至没有运行过。我不明白用不同的方式链接ant库是如何解决这个问题的。
<attribute name = "Class-Path" value = "D:/DevTools/apache-ant-1.9.8/lib/ant.jar;"/> , etc...
<attribute name = "Class-Path" value = "D:/DevTools/apache-ant-1.9.8/lib/;"/>