2016-12-02 120 views
0

我的Ant构建文件看起来是这样的:的java蚂蚁运行命令找不到LIB罐子

<project name="Algorithm" basedir="." default="main"> 

<property name="src.dir"  value="src"/> 

<property name="build.dir" value="build"/> 
<property name="classes.dir" value="${build.dir}/classes"/> 

<property name="main-class" value="ye.tian.Main"/> 

<property name="jar.dir"  value="${build.dir}/jar"/> 

<property name="lib.dir"  value="lib"/> 

<path id="myclasspath"> 
    <fileset dir="${lib.dir}" includes="*.jar"/> 
</path> 

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

<target name="clean"> 
    <delete dir="${build.dir}"/> 
</target> 

<target name="compile"> 
    <mkdir dir="${classes.dir}"/> 
    <javac srcdir="${src.dir}" destdir="${classes.dir}" classpathref="myclasspath"/> 
</target> 

<target name="run" depends="jar"> 
    <java jar="${jar.dir}/${ant.project.name}.jar" classpathref="myclasspath" fork="true"/> 
</target> 

我的项目结构。 Lib包含所有jar库和src - 包含java文件的包。

运行ant run给出了一个错误:

run: 
[java] Exception in thread "main" java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/type/TypeReference 

My libs folder looks like this:

我的理解无法找到名为杰克逊库罐子它们lib文件夹下...我的链接必须是错误的。有什么建议?

谢谢!

最新动态:@ AR.3还是同样的问题

+0

你确定你在lib文件夹里有jackson-core.jar? –

+0

@AnonymousUser我附上了我的lib文件夹内容的截图。 –

+0

你能在jackson-core-2.8.5 jar下找到这个路径吗?如果是的话,确保你的lib文件夹被蚂蚁正确读取..我看到你指向它作为./lib不像src –

回答

0

请在所有属性的所有路径绝对(由前缀src.dirbuild.dirlib.dir${basedir}/)与建议更新build.xml文件。因此你不必依赖工作目录。 <java>您在run目标中运行的任务可能使用${jar.dir}作为工作目录,并且您的类路径(将其解析为相对路径)将指向不存在的build/jar/lib/*.jar

<property name="src.dir"  value="${basedir}/src"/> 
<property name="build.dir" value="${basedir}/build"/> 
<property name="lib.dir"  value="${basedir}/lib"/> 

<property name="classes.dir" value="${build.dir}/classes"/> 
<property name="main-class" value="ye.tian.Main"/> 
<property name="jar.dir"  value="${build.dir}/jar"/>