Ant无法找到外部jar文件。显示java.lang.NoClassDefFound错误异常

时间:2014-08-16 08:30:42

标签: java ant jar build

我正在使用以下目标创建一个jar文件 -

    <target name="jar" depends="compile">  
        <jar destfile="${jar.dir}/TargetClass.jar" 
        basedir="${build.dir}">
        <manifest>
            <attribute name="Main-Class" value="${main.class}"/>
        </manifest>
        </jar>
    </target>

我尝试使用以下目标执行jar文件 -

    <target name="runjar">
       <java jar="${jar.dir}/TargetClass.jar" fork="true"/>
     </target>

我在我的TragetClass中使用了apache poi jar,它位于D:/ Jar目录下。执行它时无法找到poi jar并显示java.lang.NoClassDefFoundError异常。

1 个答案:

答案 0 :(得分:0)

您需要使用classpath。类似的东西:

<property name="poi.jars" value="path to poi jars"/>

<path id="run.classpath">
  <pathelement location="${poi.jars}"/>
</path>

<target name="runjar">
  <java 
    jar="${jar.dir}/TargetClass.jar" 
    fork="true"
   <classpath refid="run.classpath"/>
  />
</target>

有关详细信息,请参阅Ant Java Task