2016-12-02 10 views
0

私のAntビルドファイルはこのようになりますlibにjarファイルを見つけることができません。のJavaのant runコマンドは -

<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> 

マイプロジェクト構造は次のとおりです。ルートフォルダの名前srcとlibの内部に2つのフォルダに。 libにはすべてのjarライブラリーとjava-srcパッケージが入っています。 ant runを実行

はエラーを与える:

私はlibフォルダの下にあるジャクソンという名前のライブラリのjarファイルを見つけることができません理解し
run: 
[java] Exception in thread "main" java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/type/TypeReference 

My libs folder looks like this:

...私のリンクが間違っていなければなりません。何かアドバイス?

ありがとうございました!

UPDATE:AR.3 @からの提案で更新build.xmlファイルも同じ問題

+0

libフォルダ内にjackson-core.jarがありますか? –

+0

@AnonymousUser私のlibフォルダの内容のスクリーンショットが添付されています。 –

+0

このパスはjackson-core-2.8.5 jarの下にありますか?あなたのlibフォルダがantによって正しく読み込まれていることを確認してください。私はあなたがsrcとは違って./libとしてそれを指しているのを見ました。 –

答えて

0

は(${basedir}/src.dirbuild.dirlib.dirを付けることによって)絶対的なすべてのプロパティのすべてのパスを確認します。したがって、作業ディレクトリに頼る必要はありません。 runターゲットで実行する<java>タスクは、作業ディレクトリとして${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"/> 
関連する問題