2016-12-02 76 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"/>