2015-09-08 42 views
0

我想弄清楚如何添加與螞蟻的外部罐子。如何添加與螞蟻的外部罐子?

我與NetBeans的這個簡單的項目「使用」外部庫(GSON 2.3.1): Gson

這是該項目的外觀在文件系統(GSON罐子是在「LIB」): enter image description here

這是build.xml文件:

<?xml version="1.0" encoding="UTF-8"?> 
<project name="Project" default="main" basedir="."> 

    <property name="lib.dir" location="lib" /> 
    <property name="src.dir" location="src" /> 
    <property name="build.dir" location="build" /> 
    <property name="classes.dir" location="${build.dir}/classes" /> 
    <property name="jar.dir" location="${build.dir}/jar" /> 

    <target name="main" depends="execute"> 
     <echo message="targets completed" /> 
    </target> 

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

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

    <target name="compile" depends="makedir"> 
     <javac srcdir="${src.dir}" destdir="${classes.dir}"> 
      <classpath> 
       <path> 
        <fileset dir="${lib.dir}"> 
         <include name="**/*.jar" /> 
        </fileset> 
       </path> 
      </classpath> 
     </javac> 
    </target> 

    <target name="makedir" depends="clean"> 
     <mkdir dir="${build.dir}" /> 
     <mkdir dir="${classes.dir}" /> 
     <mkdir dir="${jar.dir}" /> 
    </target> 

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

</project> 

如果我跑這跟螞蟻,我從 '執行' 的目標得到例外[java] Exception in thread "main" java.lang.NoClassDefFoundError: com/google/gson/Gson。哪裏不對?

+1

另見這個答案。可以將所有罐子裝入一個大罐子中。在清單中使用類路徑:http://stackoverflow.com/questions/3143567/cannot-find-main-class-in-file-compiled-with-ant/3144290#3144290 –

回答

1

您需要添加以下到您的jar目標

<zipgroupfileset dir="${lib-dir}" includes="**/*.jar"/>