cybertextron
cybertextron

Reputation: 10961

adding jar library files to an ant build

I added commons-codec.1.2.jar to my Java Build Path

    [javac] C:\Users\souzamor\workspace\tczip\src\tczip\Tczip.java:190: error: c
annot find symbol
    [javac]   mdEnc = new String( Hex.encodeHex( diges
t ));
    [javac]                       ^

and here is my build.xml file:

<?xml version="1.0" encoding="UTF-8"?>
<project>

    <target name="clean">
        <delete dir="build" />
    </target>

    <target name="compile">
        <mkdir dir="build/classes" />
        <javac srcdir="src" destdir="build/classes" />
    </target>

    <target name="jar">
        <mkdir dir="build/jar" />
        <jar destfile="build/jar/Tczip.jar" basedir="build/classes">
            <manifest>
                <attribute name="Main-Class" value="tczip.ZipComparison" />
            </manifest>
        </jar>
    </target>

    <target name="run">
        <java jar="build/jar/Tczip.jar" fork="true" />
    </target>

</project>

How could I add the jar files into the build.xml file?? I also have another Java class called Tczip which processes MD5:

 [java] Processing: bhmcommonclient.zip
 [java] Exception in thread "main" java.lang.NoClassDefFoundError: org/apach
mmons/codec/binary/Hex
 [java]     at tczip.Tczip.digest(Unknown Source)
 [java]     at tczip.Tczip.execute(Unknown Source)
 [java]     at tczip.ZipComparison.showFiles(Unknown Source)
 [java]     at tczip.ZipComparison.showFiles(Unknown Source)
 [java]     at tczip.ZipComparison.showFiles(Unknown Source)
 [java]     at tczip.ZipComparison.showFiles(Unknown Source)
 [java]     at tczip.ZipComparison.showFiles(Unknown Source)
 [java]     at tczip.ZipComparison.matchMD5(Unknown Source)
 [java]     at tczip.ZipComparison.main(Unknown Source)

I don't think I'm adding that correctly to my jar file ... how could I do that? I'm totally new to Ant

Upvotes: 0

Views: 12604

Answers (1)

Dan D.
Dan D.

Reputation: 32391

First declare it like this:

<path id="external.classpath">
    <pathelement location="${lib.dir}/commons-codec-1.2.jar"/>
</path>

Then, inside your javac element, include it in the classpath like this:

  <classpath>
    <path refid="external.classpath" />
  </classpath>

Upvotes: 5

Related Questions