0

我正在尝试使用 ant 运行自定义 java 任务,自定义任务已成功编译到 .class 文件中。此自定义任务将调用应用程序中的另一个类,理论上通过命令行运行该程序。

<?xml version="1.0"?>
   <project default="main" name="myproject">
    <property name="distDir" location=".\dist\" />
<property name="mainDir" location=".\" />
<property name="host" value=""/>
<property name="port" value=""/>
<property name="dir" value=""/>
<property name="startTest" value=""/>
<property name="endTest" value=""/>
<property name="testOnly" value=""/>
<property name="userName" value=""/>
<property name="passwd" value=""/>
    <taskdef name="mytask" classname="Classrunner">
        <classpath>  
            <fileset dir="${distDir}>
                <includes="*.jar">
            </fileset>
         </classpath>
    </taskdef>
    <target name="main">
        <mytask host="${host}" port="${port}" dir="${dir}" startTest="${startTest}" endTest="${endTest}" testOnly="${testOnly}" userName="${userName}" passwd="${passwd}"/>
    </target>
</project>

我的 ant 文件的 taskdef 部分指定了一个文件集,该文件集包含一个目录,其中包含所有 jar 以运行我正在尝试运行的应用程序。我遇到的问题是每当我通过命令行调用 ant 并传递所有正确的参数时,我都会收到一条错误消息“java.lang.NoClassDefFoundError: com/pega/fuzz/player/CustomClass”

CustomClass 是我在自定义文件中调用的类,它存在于所有 jar 文件的该目录中,所以我不确定如何指定它的位置,因为 Ant 找不到它。

4

2 回答 2

0

工作中的某个人帮助我找到了解决此问题的方法。

最好的方法是通过 .bat 文件设置环境变量类路径,如下所示:

set "CURRENT_DIR=%~dp0"
cd %CURRENT_DIR%
set "CLASSPATH=%CURRENT_DIR%\dist\bsf-2.3.0.jar;%CURRENT_DIR%\....   "

然后,您可以从那里为 ant 设置一个变量并从这里运行您的 ant 文件。

于 2012-07-26T16:34:42.680 回答
0

我认为您需要 taskdef 标记的类路径属性。
请参阅此处的文档:http: //ant.apache.org/manual/tutorial-writing-tasks.html#use1

于 2012-07-23T22:35:19.637 回答