I am trying to build a jar file and getting error Build Failed.
Problem creating jar: archive contains more than 65535 entries. (and the archive is probably corrupt but I could not delete it)
I am using Eclipse Neon Release 1 with JDK 1.8.0_101 and Ant version in eclipse is 1.9.6.
below is my ant build file :-
<property name="jar.name" value="ABC.jar" />
<property name="source.root" value="src" />
<property name="class.root" value="bin" />
<property name="lib.dir" value="lib" />
<property name="jar.dir" value="C:\D\ABC-Exe" />
<property name="Main-Class" value="com.abc.xxx.main.ABCEval" />
<property name="conf.pkj" value="com/abc/xxx/business/configurations" />
<property name="img.pkj" value="com/abc/xxx/business/images" />
<path id="project.class.path">
<pathelement location="${class.root}" />
<fileset dir="${lib.dir}">
<include name="*.jar" />
</fileset>
</path>
<target name="clean" description="cleans up build structures">
<delete dir="${class.root}" />
<delete file="${jar.dir}/${jar.name}" />
</target>
<target name="prepare" description="sets up build structures">
<mkdir dir="${class.root}" />
</target>
<target name="compile" depends="prepare" description="Compiles all java classes">
<javac srcdir="${source.root}" destdir="${class.root}" debug="on" optimize="off" deprecation="on" source="1.8" target="1.8" includeantruntime = "false">
<classpath refid="project.class.path" />
</javac>
<mkdir dir="${class.root}/${conf.pkj}" />
<mkdir dir="${class.root}/${imwg.pkj}" />
<copy todir="${class.root}/${conf.pkj}">
<fileset dir="${source.root}/${conf.pkj}" />
</copy>
<copy todir="${class.root}/${img.pkj}">
<fileset dir="${source.root}/${img.pkj}" />
</copy>
</target>
<target name="jar" depends="compile">
<delete file="${jar.dir}/${jar.name}" quiet="true" failonerror="false" />
<jar destfile="${jar.dir}/${jar.name}">
<fileset dir="${class.root}" includes="**/*.*" />
<fileset dir="${source.root}" includes="**/api/*.java,**/api/vo/*.java"/>
<zipgroupfileset dir="${lib.dir}" />
<manifest>
<attribute name="Main-Class" value="${Main-Class}" />
<attribute name="Class-Path" value="." />
</manifest>
</jar>
</target>
<target name="run">
<java fork="true" classname="${Main-Class}">
<classpath>
<path location="./${jar.name}" />
</classpath>
</java>
</target>
Specify the zip64Mode argument on your jar task to say that you need to use the large 'zip64' format:
<jar destfile="${jar.dir}/${jar.name}" zip64Mode="always">
Related
I am trying to build jar for my project using jdk 1.8.0_40 and ant version 1.9.0, jar is getting build but while converting this jar to .exe, it is not able to find main class as I have correctly mentioned my main class.I am using eclipse Mar Version: Mars.2 Release (4.5.2).
Earlier I was using jdk 1.7.0_79 version and ant 1.8.4 and everything was working fine.
I am facing issue while upgrading from jdk 1.7.0_79 to jdk 1.8.0_40.
Below is my ant xml which are using to build my jar.Let me know if any configuration is required for java 1.8 to build proper jar.
<property name="jar.name" value="SAFAL.jar" />
<property name="source.root" value="src" />
<property name="class.root" value="bin" />
<property name="lib.dir" value="lib" />
<property name="jar.dir" value="C:\D\SAFAL-Exe" />
<property name="Main-Class" value="com.sungard.ktt.main.SAFALEval" />
<property name="conf.pkj" value="com/sungard/ktt/business/configurations" />
<property name="img.pkj" value="com/sungard/ktt/business/images" />
<path id="project.class.path">
<pathelement location="${class.root}" />
<fileset dir="${lib.dir}">
<include name="*.jar" />
</fileset>
</path>
<target name="clean" description="cleans up build structures">
<delete dir="${class.root}" />
<delete file="${jar.dir}/${jar.name}" />
</target>
<target name="prepare" description="sets up build structures">
<mkdir dir="${class.root}" />
</target>
<target name="compile" depends="prepare" description="Compiles all java classes">
<javac srcdir="${source.root}" destdir="${class.root}" debug="on" optimize="off" deprecation="on" source="1.8" target="1.8" includeantruntime = "false">
<classpath refid="project.class.path" />
</javac>
<mkdir dir="${class.root}/${conf.pkj}" />
<mkdir dir="${class.root}/${img.pkj}" />
<copy todir="${class.root}/${conf.pkj}">
<fileset dir="${source.root}/${conf.pkj}" />
</copy>
<copy todir="${class.root}/${img.pkj}">
<fileset dir="${source.root}/${img.pkj}" />
</copy>
</target>
<target name="jar" depends="compile">
<delete file="${jar.dir}/${jar.name}" quiet="true" failonerror="false" />
<jar destfile="${jar.dir}/${jar.name}">
<fileset dir="${class.root}" includes="**/*.*" />
<fileset dir="${source.root}" includes="**/api/*.java,**/api/vo/*.java"/>
<zipgroupfileset dir="${lib.dir}" />
<manifest>
<attribute name="Main-Class" value="${Main-Class}" />
<attribute name="Class-Path" value="." />
</manifest>
</jar>
</target>
<target name="run">
<java fork="true" classname="${Main-Class}">
<classpath>
<path location="./${jar.name}" />
</classpath>
</java>
</target>
In your java task you are using ./${jar.name} as the location of your jar - this is relying on the current directory being set correctly. All the rest of your code uses ${jar.dir}/${jar.name} as the path for the jar, so change the java task to do the same:
<target name="run">
<java fork="true" classname="${Main-Class}">
<classpath>
<path location="${jar.dir}/${jar.name}" />
</classpath>
</java>
</target>
i am developing a dynamic web project.
and i having problem when i want to build it using ant script.
my purpose is to adopt three-tier concept, which is have business-layer and presentation-layer in different machine.
i use weblogic server as web server (presentation layer) and app server (business layer)
here is my build.xml :
<property name="build" value="./build" />
<property name="dist" value="./dist" />
<!-- <property name="conf" value="./config" /> -->
<property name="src" value="./src" />
<property name="web" value="./WebContent" />
<property name="lib" value="${web}/WEB-INF/lib" />
<property name="webinf" value="${web}/WEB-INF" />
<property name="metainf" value="${web}/META-INF" />
<property name="servletLib" value="C:\Oracle\MiddlewareOneBC\wlserver_12.1\server\lib" />
<property name="deploydir" value="C:\Oracle\MiddlewareOneBC\user_projects\domains\OneBCDomain\autodeploy" />
<property name="project.name" value="OneBCApplication" />
<path id="build.classpath">
<fileset dir="${lib}" includes="**/*.jar" />
<fileset dir="${servletLib}" includes="**/*.jar" />
</path>
<target name="clean">
<delete dir="${build}" />
<delete dir="${dist}" />
</target>
<target name="init">
<tstamp />
<mkdir dir="${build}" />
<mkdir dir="${build}/classes" />
<mkdir dir="${dist}" />
</target>
<target name="compile" depends="init">
<javac srcdir="${src}" destdir="${build}/classes" optimize="on" includeantruntime="false">
<classpath refid="build.classpath" />
</javac>
<copy todir="${build}/classes">
<fileset dir="${src}" excludes="ddl/*" />
<fileset dir="${src}" excludes="dml/*" />
<fileset dir="${src}" excludes="**/*.xls" />
<fileset dir="${src}" includes="**/*.xml" />
<fileset dir="${src}" includes="**/*.properties" />
<!-- <fileset dir="${conf}" includes="**/*" /> -->
</copy>
</target>
<target name="war" depends="compile">
<war destfile="${dist}/${project.name}.war" webxml="${webinf}/web.xml">
<lib dir="${lib}" />
<classes dir="${build}/classes"/>
<fileset dir="${web}">
<include name="**/*.*" />
<exclude name="WEB-INF/lib/*" />
</fileset>
</war>
</target>
<target name="ear" depends="war">
<ear destfile="${dist}/${project.name}EAR.ear" appxml="${metainf}/application.xml">
<fileset dir="${dist}" includes="*.war" />
</ear>
</target>
<target name="warweb" depends="compile">
<war destfile="${dist}/web/${project.name}Web.war" webxml="${webinf}/web.xml">
<lib dir="${lib}" excludes="**/BV_*.*" />
<classes dir="${build}/classes">
<!-- <exclude name="**/*.java"/>
<exclude name="**/*.class"/> -->
<exclude name="com/**"/>
</classes>
<fileset dir="${web}">
<include name="**/*.*" />
<exclude name="WEB-INF/lib/*" />
</fileset>
</war>
<jar destfile="${dist}/lib/${project.name}.jar" basedir="${build}/classes"/>
</target>
<target name="earweb" depends="warweb">
<ear destfile="${dist}/${project.name}Static.ear" appxml="${metainf}/application.xml">
<fileset dir="${dist}/web" includes="*.war" />
</ear>
</target>
<target name="earapp" depends="warweb">
<ear destfile="${dist}/${project.name}App.ear" appxml="${metainf}/application.xml">
<fileset dir="${dist}/web" includes="*.war" />
<zipfileset dir="${dist}/lib" includes="*.jar" prefix="APP-INF/lib" />
<zipfileset dir="${lib}" includes="**/BV_*.*" prefix="APP-INF/lib" />
</ear>
</target>
<target name="deploywar" depends="ear">
<copy todir="${deploydir}">
<fileset dir="${dist}" includes="*.war" />
</copy>
</target>
<target name="deployear" depends="ear">
<copy todir="${deploydir}">
<fileset dir="${dist}" includes="*.ear" />
</copy>
</target>
<target name="undeploy">
<delete file="${deploydir}/${project.name}EAR.ear"/>
<delete file="${deploydir}/${project.name}EAR.war"/>
</target>
how to build it separately ? and how the request from presentation layer can comunicate with business layer? is there any configuration in weblogic that has to be done to made these two layer communicate?
thanks in advance.
Using fileset task you specify what jar file you want to include for app server or web server.
<ear destfile="${build.dir}/myapp.ear" appxml="${src.dir}/metadata/application.xml">
<fileset dir="${build.dir}" includes="*.jar,*.war"/>
</ear>
just you two ear task to create two ear one for app server and one for web server.
I have this XML code script and it says to use command prompt to execute it but everything I try doesnt work, it has a readme file which states
Clone the project with git or download the source zip from the github page and extract it.
Open the folder and run build.xml (this may require cmd to execute).
Wait for the build to complete and run DarkBot.jar from cmd with --help for args.
<project name="DarkBot" default="generate-protocols" basedir=".">
<target name="init">
<property name="outputDir" value="bin" />
<property name="protocolsDir" value="protocols" />
<property name="protocolsPackage" value="org.darkstorm.darkbot.minecraftbot.protocol" />
<property name="deployJar" value="DarkBot.jar" />
<property name="libraryDir" value="lib" />
<property name="tempDir" value="temp" />
<property name="mainClass" value="org.darkstorm.darkbot.mcwrapper.Main" />
<property name="antContribPath" value="build/ant-contrib-1.0b3.jar" />
</target>
<target name="clean" depends="init">
<delete file="${deployJar}" failonerror="false" />
<delete dir="${outputDir}" failonerror="false" />
<delete dir="${tempDir}" failonerror="false" />
</target>
<target name="compile" depends="clean">
<mkdir dir="${outputDir}" />
<javac encoding="UTF-8" destdir="${outputDir}" includeantruntime="false">
<src path="src/main/java" />
<src path="src/main/resources" />
<classpath>
<fileset dir="${libraryDir}">
<include name="**/*.jar" />
</fileset>
</classpath>
</javac>
<copy todir="${outputDir}">
<fileset dir="src/main/java">
<exclude name="**/*.java" />
</fileset>
<fileset dir="src/main/resources">
<exclude name="**/*.java" />
</fileset>
</copy>
</target>
<target name="deploy" depends="compile">
<mkdir dir="${tempDir}" />
<unzip dest="${tempDir}">
<patternset>
<exclude name="META-INF/**" />
</patternset>
<fileset dir="${libraryDir}">
<include name="**/*.jar" />
</fileset>
</unzip>
<copy todir="${tempDir}">
<fileset dir="${outputDir}">
<include name="*" />
</fileset>
</copy>
<echo message="Manifest-Version: 1.0${line.separator}Class-Path: .${line.separator}Main-Class: ${mainClass}" file="${outputDir}/manifest.txt" />
<jar destfile="${deployJar}" basedir="${outputDir}" manifest="${outputDir}/manifest.txt" excludes="manifest.txt" />
<jar destfile="${deployJar}" basedir="${tempDir}" includes="**/**" update="true" />
<delete dir="${tempDir}" />
</target>
<target name="generate-protocols" depends="deploy">
<taskdef resource="net/sf/antcontrib/antlib.xml">
<classpath>
<pathelement location="${antContribPath}" />
</classpath>
</taskdef>
<mkdir dir="${protocolsDir}" />
<javac encoding="UTF-8" destdir="${protocolsDir}" includeantruntime="false">
<src path="src/main/protocols" />
<classpath>
<fileset file="${deployJar}" />
<fileset dir="${libraryDir}">
<include name="**/*.jar" />
</fileset>
</classpath>
</javac>
<propertyregex property="protocolsFolder" input="src.main.protocols.${protocolsPackage}" global="true" regexp="\." replace="/" />
<pathconvert property="files" pathsep="${line.separator}">
<map from="${protocolsFolder}{$file.separator}" to="" />
<dirset dir="${protocolsFolder}">
<include name="*" />
</dirset>
</pathconvert>
<propertyregex property="protocolsFolder" override="true" input="${protocolsPackage}" global="true" regexp="\." replace="/" />
<for list="${files}" delimiter="${line.separator}" param="file">
<sequential>
<local name="protocolVersion" />
<basename property="protocolVersion" file="#{file}" />
<mkdir dir="${protocolsDir}/META-INF/services" />
<if>
<contains string="${protocolVersion}" substring="x" />
<then>
<propertyregex property="protocolVersion" override="true" input="${protocolVersion}" regexp="v([0-9]+)" select="\1" />
<echo message="${protocolsPackage}.v${protocolVersion}x.Protocol${protocolVersion}X$$Provider" file="${protocolsDir}/META-INF/services/${protocolsPackage}.ProtocolProvider" />
<jar destfile="${protocolsDir}/v${protocolVersion}x.jar" update="false" basedir="${protocolsDir}" includes="${protocolsFolder}/v${protocolVersion}x/**/**,META-INF/**/**" />
</then>
<else>
<propertyregex property="protocolVersion" override="true" input="${protocolVersion}" regexp="v([0-9]+)" select="\1" />
<echo message="${protocolsPackage}.v${protocolVersion}.Protocol${protocolVersion}$$Provider" file="${protocolsDir}/META-INF/services/${protocolsPackage}.ProtocolProvider" />
<jar destfile="${protocolsDir}/v${protocolVersion}.jar" update="false" basedir="${protocolsDir}" includes="${protocolsFolder}/v${protocolVersion}/**/**,META-INF/**/**" />
</else>
</if>
<delete dir="${protocolsDir}/META-INF" />
</sequential>
</for>
<propertyregex property="protocolBase" input="${protocolsPackage}" regexp="^([a-zA-Z][a-zA-Z0-9]+).*" select="\1" />
<delete dir="${protocolsDir}/${protocolBase}" />
</target>
Its an Ant build file. Download Ant and run the build targets listed E.g.
ant deploy
This looks like an ant build file, download and install an ant, try:
ant init deploy
or some other name in target tag.
Ant manual is here
I am trying to build a runnable JAR file of a project by using build.xml file and the prompt code
cd <the directory of you application>
ant -f bin/build.xml jar
But I have exceptions when I run the JAR because I cannot add the external JAR.
the build.xml is as follows:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!--
This file was generated by Jason 1.3.9-alpha
http://jason.sf.net
Ocak 11, 2014 - 01:09:12
-->
<project name ="virtualClassroom"
basedir=".."
default="run">
<property name="mas2j.project.file" value="virtualClassroom.mas2j"/>
<property name="debug" value=""/> <!-- use "-debug" to run in debug mode -->
<property name="build.dir" value="${basedir}/bin/classes" />
<property name="jasonJar" value="C:\Users\Emre\Desktop\MasterThesis-BDI\Jason-1.3.9\Jason-1.3.9\lib\jason.jar"/>
<property name="JavaCsBridgeJar" value="C:\Users\Emre\Desktop\MasterThesis-BDI\virtualClassroom\lib\JavaCsBridge.jar"/>
<path id="project.classpath">
<pathelement location="${basedir}"/>
<pathelement location="${build.dir}"/>
<pathelement location="${JavaCsBridgeJar}"/>
<pathelement location="${jasonJar}"/>
<fileset dir="${basedir}/lib" > <include name="*.jar" /> </fileset>
</path>
<!-- tasks the user can override in his/her c-build.xml script -->
<target name="user-init">
</target>
<target name="user-end">
</target>
<target name="init">
<mkdir dir="${build.dir}" />
<antcall target="user-init" />
</target>
<target name="compile" depends="init">
<condition property="srcdir" value="${basedir}/src/java" else="${basedir}" >
<available file="${basedir}/src/java" />
</condition>
<javac srcdir="${srcdir}" destdir="${build.dir}" debug="true" optimize="true" includeantruntime="false" >
<classpath refid="project.classpath"/>
</javac>
</target>
<target name="jar" depends="compile">
<delete file="${ant.project.name}.jar" />
<copy file="${jasonJar}" tofile="${ant.project.name}.jar" />
<copy file="${JavaCsBridge}" tofile="${ant.project.name}.jar" />
<copy file="${mas2j.project.file}" tofile="default.mas2j" />
<jar update="yes" jarfile="${ant.project.name}.jar" >
<fileset dir="${basedir}">
<include name="**/*.asl" />
<include name="**/*.mas2j" />
</fileset>
<fileset dir="${build.dir}">
<include name="**/*.class" />
</fileset>
<manifest>
<attribute name="Main-Class" value="jason.infra.centralised.RunCentralisedMAS"/>
</manifest>
</jar>
<delete file="default.mas2j" />
</target>
<target name="jnlp" depends="jar" >
<mkdir dir="${basedir}/${ant.project.name}-jws"/>
<java classname="jason.infra.centralised.CreateJNLP"
failonerror="true" fork="yes" dir="${basedir}/${ant.project.name}-jws" >
<classpath refid="project.classpath"/>
<arg line="${ant.project.name} ${mas2j.project.file}"/>
</java>
<copy todir="${basedir}/${ant.project.name}-jws" failonerror="no">
<fileset dir="${basedir}/lib" includes="**/*.jar" />
<fileset dir="${basedir}" includes="${ant.project.name}.jar" />
<fileset dir="C:\Users\Emre\Desktop\MasterThesis-BDI\Jason-1.3.9\Jason-1.3.9/src/images" includes="Jason-GMoreau-Icon.jpg" />
</copy>
<signjar jar="${basedir}/${ant.project.name}-jws/${ant.project.name}.jar" alias="jason"
storepass="rbjhja" keypass="rbjhja" keystore="C:\Users\Emre\Desktop\MasterThesis-BDI\Jason-1.3.9\Jason-1.3.9/src/jasonKeystore" />
<echo message="**" />
<echo message="** Java Web Start application created in directory ${ant.project.name}-jws" />
<echo message="** Update the codebase (in the second line of the .jnlp file)" />
<echo message="** with the URL where you will upload the application." />
<echo message="**" />
</target>
<target name="run" depends="compile" >
<echo message="Running project ${ant.project.name}" />
<java classname="jason.infra.centralised.RunCentralisedMAS"
failonerror="true" fork="yes" dir="${basedir}" >
<classpath refid="project.classpath"/>
<arg line="${mas2j.project.file} ${debug} "/>
<!-- jvmarg line="-Xmx500M -Xss8M"/ -->
</java>
<antcall target="user-end" />
</target>
<target name="clean" >
<delete failonerror="no" includeEmptyDirs="true" verbose="true">
<fileset dir="${basedir}" includes="**/*.class"/>
</delete>
</target>
</project>
Do anyone know what to do?
Thanks
Firstly, you need to tell us exactly which class is giving a NoClassDefFoundError
As a generic answer, the explanation is that the particular class was available during compile time but missing during runtime. This is a common issue with jar executables.
Solution : Either include the missing classes in the jar itself or add those to the system classpath.
I am trying to build a project using Apache ANT ( all packages installed like SWT, Eclipse Indigo on Windows Xp SP3). All file are available in the corresponding directory
F:\Work_Arun\Indic\trunk\indic-keyboards\build-win32-x86.xml:47: Execute failed: java.io.IOException: Cannot run program "Cl" (in directory "F:\Work_Arun\Indic\trunk\indic-keyboards\src\org\iisc\mile\indickeyboards\windows"): CreateProcess error=2, The system cannot find the file specified
Build.XML
<?xml version="1.0"?>
<project name="indic-keyboards-win32-x86" default="build">
<description>indic-keyboards - A Multilingual Indic Keyboard Interface for Indic Scripts</description>
<property name="debug" value="false" />
<property name="verbose" value="false" />
<property name="main.class" value="org.iisc.mile.indickeyboards.IndicKeyboards" />
<property name="swt" value="swt.jar" />
<fileset id="ImagesIcons" dir="./resources">
<patternset includes="*.ico,*.png,*.gif,*.jpg,*.jpeg" />
</fileset>
<fileset id="otherfiles" dir=".">
<patternset includes="*.txt,*.conf" />
</fileset>
<fileset id="swtorg" dir="./swt">
<patternset includes="**/org/**" />
</fileset>
<fileset id="swtdll" dir="./swt">
<patternset>
<include name="swt*.dll" />
<include name="version.txt" />
</patternset>
</fileset>
<fileset id="ourdll" dir=".">
<patternset includes="*.dll" />
</fileset>
<target name="init" description="Initialization by creating the directory structure">
<mkdir dir="bin" />
</target>
<target name="header" depends="compile" description="Generates the platform specific header files for building libraries">
<javah destdir="./src/org/iisc/mile/indickeyboards/windows" classpath="./bin">
<class name="org.iisc.mile.indickeyboards.windows.PollThread" />
<class name="org.iisc.mile.indickeyboards.windows.OutputCharToActiveWindow" />
</javah>
</target>
<target name="build" depends="header" description="Creates the windows libraries (.dll files)">
<property environment="env" />
<echo>Using JDK present at ${env.JAVA_HOME} ; Architecture : ${env.PROCESSOR_ARCHITECTURE}</echo>
<exec dir="./src/org/iisc/mile/indickeyboards/windows" executable="Cl">
<arg line="-I'${env.JAVA_HOME}'\include -I'${env.JAVA_HOME}'\include\win32 -LD /Feindic-keyboards-sysHook.dll syshook.cpp /link user32.lib" />
</exec>
<exec dir="./src/org/iisc/mile/indickeyboards/windows" executable="cl">
<arg line="-I'${env.JAVA_HOME}'\include -I'${env.JAVA_HOME}'\include\win32 -LD /Feindic-keyboards-opChars.dll opChars.cpp /link user32.lib" />
</exec>
<move todir=".">
<fileset dir="./src/org/iisc/mile/indickeyboards/windows">
<include name="*.dll" />
</fileset>
</move>
<delete>
<fileset dir="./src/org/iisc/mile/indickeyboards/windows" includes="*.h" />
<fileset dir="./src/org/iisc/mile/indickeyboards/windows" includes="*.obj" />
<fileset dir="./src/org/iisc/mile/indickeyboards/windows" includes="*.exp" />
<fileset dir="./src/org/iisc/mile/indickeyboards/windows" includes="*.lib" />
<fileset dir="./src/org/iisc/mile/indickeyboards/windows">
<include name="lib*" />
</fileset>
</delete>
</target>
<target name="compile" depends="init" description="Compiles the java source code.">
<echo>Compiling ${ant.project.name}</echo>
<javac srcdir="src" destdir="bin" classpath="${swt}" debug="${debug}" verbose="${verbose}" />
</target>
<target name="run" depends="build" description="Executes the project">
<echo>Using Java ${ant.java.version} present at ${java.home}</echo>
<java classpath="${swt}:./bin" classname="org.iisc.mile.indickeyboards.IndicKeyboards" fork="true" />
</target>
<target name="jar" depends="build" description="Packages into an executable JAR">
<mkdir dir="dist" />
<mkdir dir="swt" />
<unjar src="${swt}" dest="./swt" />
<manifest file="MANIFEST.MF">
<attribute name="Class-Path" value="." />
<attribute name="Main-Class" value="${main.class}" />
</manifest>
<jar destfile="./dist/${ant.project.name}.jar" basedir="bin" duplicate="preserve" manifest="./MANIFEST.MF">
<fileset refid="swtdll" />
<fileset refid="swtorg" />
</jar>
<delete dir="META-INF" />
<delete file="./MANIFEST.MF" />
<delete dir="swt" />
<copy todir="./dist">
<fileset refid="ourdll" />
</copy>
<mkdir dir="./dist/kblayouts" />
<copy todir="./dist/kblayouts">
<fileset dir="./kblayouts" />
</copy>
<mkdir dir="./dist/resources" />
<copy todir="./dist/resources">
<fileset dir="./resources" />
</copy>
<mkdir dir="./dist/docs" />
<copy todir="./dist/docs">
<fileset dir="./docs" />
</copy>
<copy todir="./dist">
<fileset refid="otherfiles" />
</copy>
<delete dir="./bin" />
</target>
<target name="javadoc" depends="init" description="Generates javadoc of the source">
<mkdir dir="./javadoc" />
<javadoc destdir="./javadoc" sourcepath="./src" packagenames="org.*" Private="true" />
<delete dir="./bin" />
</target>
<target name="clean" description="Clean up after compile/build.">
<delete dir="./bin" />
<delete dir="./javadoc" />
<delete dir="./dist" />
<delete>
<fileset dir="./" includes="*.dll" />
</delete>
</target>
</project>
What is cause of the error ?