Hi,
I cannot make Ant launch a class that is stored in a jar file.
I tried many variants, but to no avail.
Thanks in advance
Alain RAVET
Brussels, Belgium
The original version where I lauch the class directly (not from a jar) works
fine :
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - run -->
<property name="entry.point.class"
value="cirb.teletest.project.JJJYNet.Test_project_p_JJJYNetDB"
/>
<target name="run" depends="compile">
<java classname="${entry.point.class}" fork="yes" failonerror="true"
dir="data">
<classpath refid="libraries.path" />
<classpath path="${build.dir}" />
<arg value="conf.log4j" />
</java>
</target>
--------------------------------------------------
I use the following manifest file :
MANIFEST.MF file contents (2 lines):
---
Manifest-Version: 1.0
Main-Class: cirb.teletest.project.JJJYNet.Test_project_p_JJJYNetDB
---
The following attempt does not work :
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - runFromJar -->
<target name="runFromJar" depends="compile">
<java classname="${entry.point.class}" failonerror="true" dir="data">
<arg value="-jar ${local.CirbJarfile}" />
<classpath refid="libraries.path" />
<classpath >
<pathelement location="${local.CastorJarfile}" />
<pathelement location="${local.CirbJarfile}" />
</classpath >
<arg value="conf.log4j" />
</java>
</target>
==> Error message :
Démarrage de AntRunner ...
La cible est 'runFromJar'
Ant version 1.2 compiled on October 24 2000
Buildfile: D:\newcvs\p_JJJYNetDB\build.xml
Detected Java Version: 1.3
Detected OS: Windows NT
Project base dir set to: D:\newcvs\p_JJJYNetDB
Build sequence for target `runFromJar' is [init, compile, runFromJar]
Complete build sequence is [init, compile, runFromJar, makeCastorjar,
makeCirbjar, make2jars, run, document, FullMonthy]
[java] Forking java -classpath
D:\newcvs\p_JJJYNetDB\CastorPatched.jar;D:\newcvs\p_JJJYNetDB\p_JJJYNetDB.ja
r;M:\dev\libs\_allJars\log4j.jar;M:\dev\libs\_allJars\junitx-4.0b.jar;M:\dev
\libs\_allJars\jdbc-se2.0.jar;M:\dev\libs\_allJars\jta1.0.1.jar;M:\dev\libs\
_allJars\jtf-0.1.jar;M:\dev\libs\_allJars\ldapjdk.jar;M:\dev\libs\_allJars\l
dapsp.jar;M:\dev\libs\_allJars\mm.mysql-2.0.3.jar;M:\dev\libs\_allJars\sax2.
jar;M:\dev\libs\_allJars\xerces.jar;M:\dev\libs\_allJars\xslp.jar;M:\dev\lib
s\_allJars\jakarta-regexp-1.1.jar;D:\newcvs\p_JJJYNetDB\src
cirb.teletest.project.JJJYNet.Test_project_p_JJJYNetDB "-jar
p_JJJYNetDB.jar" conf.log4j
[java] java.lang.NoClassDefFoundError:
cirb/teletest/project/JJJYNet/Test_project_p_JJJYNetDB
BUILD FAILED
D:\newcvs\p_JJJYNetDB\build.xml:98: Java returned: 1
--------------------------------------------------
In the build.xml file, I create the jar
<target name="makeCirbjar" depends="compile">
<delete file="${local.CirbJarfile}" />
<jar jarfile="${local.CirbJarfile}"
manifest="./src/META-INF/MANIFEST.MF"
>
<!-- exclude the Test classes *.class for the jar -->
<fileset dir ="${build.dir}" includes="cirb/"
excludes="**/Test*.class" />
</jar>
</target>
When I check the contents of the jar, I can see the manifest is there.
--------------------------------------------------