ѕтƒ
ѕтƒ

Reputation: 3647

Ant Build not giving the exact class files

i created an ant build for my project.
I saw some different class names when extracted the jar file like myfile.class(r).
and the size of this class file is not same as that of the compiled class files.
Why is this happening. When i run the jar i got Exception that can not find the method. But the jar i exported form eclipse working prfectly.

here is my build.xml file

<path id="master-classpath">
    <fileset dir="${lib.dir}">
        <include name="*.jar"/>
    </fileset>

</path>

<manifestclasspath property="lib.list" jarfile=".">
        <classpath refid="master-classpath" />
</manifestclasspath>

<target name="clean" description="Clean output directories">
        <delete dir="${build.dir}"/>
</target>


<target name="build" description="Compile source tree java files">
        <echo>copy src files</echo>
        <mkdir dir="${copy.dir}"/>
        <copy todir="${copy.dir}">
                <fileset dir="${src.dir}">
                    <exclude name="**/*.class"/>
                    <include name="**/*.java"/>
                    <include name="**/*.properties"/>
                    <include name="**/*.MIB"/>
                    <include name="**/*.java.bak"/>

                </fileset>        
        </copy>


    <echo>Compiling the source code</echo>
    <echo>Apache Ant java version is ${ant.java.version}</echo>
    <mkdir dir="${build.dir}"/>
    <javac destdir="${build.dir}" srcdir="${copy.dir}" source="1.6" target="1.6" debug="on">

        <classpath refid="master-classpath"/>
    </javac>
    <copy todir="${build.dir}">
        <fileset dir="${src.dir}/src">
            <exclude name="**/*.java"/>
            <exclude name="**/*.class"/>
            <include name="**/*.properties"/>
            <include name="**/*.MIB"/>
        </fileset>        
    </copy>  
</target>

<target name="jar" depends="build">



    <mkdir dir="${jar.dir}"/>
    <echo>building jar!</echo>


    <jar destfile="${jar.dir}/${ant.project.name}.jar" >



        <fileset dir="${build.dir}" >
                <include name="**/*.class" />
                <include name="**/*.properties" />
                <include name="**/*.MIB" />
                <include name="**/*.java.bak"/>
                <include name="**/*.png"/>
                <include name="**/*.jpg"/>
        </fileset>


        <zipfileset includes="**/**.**" src="${lib.dir}/junit.jar"/>
        <zipfileset includes="**/*.*" src="${lib.dir}/mysql-connector-java-5.0.8-bin.jar"/>
        <zipfileset includes="**/*.*" src="${lib.dir}/NicManager.jar"/>
        <zipfileset includes="**/**.**" src="${lib.dir}/log4j-1.2.14.jar"/>
        <zipfileset includes="**/*.*" src="${lib.dir}/snmp4j-1.11.3.jar"/>
        <zipfileset includes="**/*.*" src="${lib.dir}/snmp4j-agent-1.4.3.jar"/>
        <zipfileset includes="**/*.*" src="${lib.dir}/NMSLookAndFeel.jar"/>
        <zipfileset includes="**/*.*" src="${lib.dir}/rt.jar"/>   
        <manifest>
            <attribute name="Main-Class" value="com.ushustech.nmsazzist.NMSAzzistApp" />
            <attribute name="Class-Path" value="${lib.list}"/>
        </manifest>

    </jar>
</target>
<target name="main" depends="clean,jar"/>

Upvotes: 1

Views: 1681

Answers (1)

ѕтƒ
ѕтƒ

Reputation: 3647

i found the problem after some days. it's because of a duplicate jar file which also contains the classes that are in my project. those classes were look like myfile.class(r).

Upvotes: 1

Related Questions