bonjour,

J'avoue être un peu bloqué depuis 1H car je ne comprends pas pourquoi mes librairies ne se package pas avec mon fichier jar. Et forcément cela pose problème à l'execution car les libs ne sont pas présente.

Voici mon fichier build.xml :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<?xml version="1.0" encoding="UTF-8"?>
<project name="Dta"  basedir="." default="exportDta">
 
	<echo message="**************************************** " />
	<echo message="*      DTA Compile And Export script   " />
	<echo message="*      ANT Version : ${ant.version}    " />
	<echo message="**************************************** " />
 
 
	<target name="init" description="Initialize build">
			<property name="dta.root.dir" value="${basedir}" />
			<property name="dta.src.dir" value="${dta.root.dir}\src" />
			<property name="dta.lib.dir" value="${dta.root.dir}\lib" />
			<property name="dta.bin.dir" value="${dta.root.dir}\bin" />
 
			<property name="output.jar.dir" value="${basedir}" />
	</target>
 
	<target name="clean" depends="init" description="Removes all generated files">
		<delete dir="${dta.bin.dir}" />
 
	</target>
 
	<path id="dta-classpath">
		<fileset dir="${basedir}\lib">
			<include name="*.jar"/>
		</fileset>
	</path>
 
	<target name="copy-non-java-files">
		<copy todir="${dta.bin.dir}" includeemptydirs="false">
			<fileset dir="${dta.src.dir}" excludes="**/*.java" />
		</copy>
	</target>
 
	<target name="compile" depends="init, clean, copy-non-java-files">
			<javac srcdir="${dta.src.dir}" destdir="${dta.bin.dir}" classpathref="dta-classpath" debug="true" />
	</target>
 
	<pathconvert property="lib.dta.manifest.classpath"
	             pathsep=" ">
	  <path refid="dta-classpath"/>
	  <flattenmapper/>
	</pathconvert>
 
	<target name="exportDta" depends="compile">
		<echo message="*      ${lib.dta.manifest.classpath}   " />
		<jar jarfile="${output.jar.dir}\test.jar" basedir="${dta.bin.dir}" includes="**\*">
			<manifest>
				<attribute name="Main-Class" value="dta.core.Launcher"/>
				<attribute name="Class-Path" value=". ${lib.dta.manifest.classpath}" />  
 
				<!--
				<attribute name="Class-Path" value="${lib.dta.manifest.classpath}" />  
				-->
			</manifest>
		</jar>
	</target>
 
	<target name="exportDtaClient">
			<!-- <jar jarfile="${output.jar.dir}/DtaClient.jar" basedir="${project.bin.dir}" /> -->
	</target>
 
	<target name="exportDtaServer">
			<!-- <jar jarfile="${output.jar.dir}/DtaServerJar.jar" basedir="${project.bin.dir}" /> -->
	</target>
 
 
</project>

Le problème je crois c'est qu'il manque ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
            <zipfileset src="jar-in-jar-loader.zip"/>
 
            <fileset dir="bin"/>
 
            <zipfileset dir="lib" includes="jdom.jar"/>
 
            <zipfileset dir="lib" includes="log4j-1.2.17.jar"/>
Mais j'aimerais automatiser ces lignes car je n'ai pas envie de reconfigurer à chaque fois le fichier dès que j'ajoute une lib.

Est-ce que vous avez une solution sous la main pour inclure mes jars lib dans mon jar executable ?

D'avance merci