J'ai cr=E9=E9 un build.xml qui me g=E9n=E8re un application.jar dont voici
l'archi :
\mes.class.java
\ lib <=3D mes librairies connexes (commons digester, ...)
\config <=3D mes fichiers de config
J'ai g=E9n=E9r=E9 un MANIFEST.MF dont voici le contenu :
Manifest-Version: 1.2
Ant-Version: Apache Ant 1.6.5
Created-By: 1.5.0_05-b05 (Sun Microsystems Inc.)
Built-By: THALES SERVICES SAS
Main-Class: i2.application.demeter.client.RunClient
Specification-Title: Utilitaire d'exploitation du client DEMETER
Specification-Version: 1.4
Specification-Vendor: SCHAPI
Implementation-Title: i2.application.demeter.client
Implementation-Version: 0.1 December 8 2005
Implementation-Vendor: THALES SERVICES SAS
Sealed: false
Class-Path: lib/commons-collections-3.1.jar, lib/commons-digester-1.7.
jar, lib/commons-lang-2.1.jar, lib/commons-logging-api.jar, lib/log4j
-1.2.12.jar
Quand je fais java -jar application.jar, je me prends une
ClassNotFoundException sur l'une des classes de mes librairies
connexes.
Hors quand je met ce jar dans un r=E9pertoire o=F9 sont stock=E9e mes
libs, je n'ai pas d'erreur...
J'ai créé un build.xml qui me génère un application.jar dont voici l'archi : mes.class.java lib <= mes librairies connexes (commons digester, ...) config <= mes fichiers de config
J'ai généré un MANIFEST.MF dont voici le contenu : Manifest-Version: 1.2 Ant-Version: Apache Ant 1.6.5 Created-By: 1.5.0_05-b05 (Sun Microsystems Inc.) Built-By: THALES SERVICES SAS Main-Class: i2.application.demeter.client.RunClient Specification-Title: Utilitaire d'exploitation du client DEMETER Specification-Version: 1.4 Specification-Vendor: SCHAPI Implementation-Title: i2.application.demeter.client Implementation-Version: 0.1 December 8 2005 Implementation-Vendor: THALES SERVICES SAS Sealed: false Class-Path: lib/commons-collections-3.1.jar, lib/commons-digester-1.7. jar, lib/commons-lang-2.1.jar, lib/commons-logging-api.jar, lib/log4j -1.2.12.jar
Quand je fais java -jar application.jar, je me prends une ClassNotFoundException sur l'une des classes de mes librairies connexes. Hors quand je met ce jar dans un répertoire où sont stockée mes libs, je n'ai pas d'erreur...
Une idée?
Merci, je suis paumé....
Tu ne peux pas mettre des jars de libraries dans ton jar. Enfin, tu peux, mais ils ne sont pas lues.
Si ca fonctionne quand tu es dans ton répertoire, c'est parce que ton jar lit les jars du répertoire ./lib, pas les jars qui sont dans le jar. La solution ? Déjarrer tes libs dans ton jar, ou alors toujours lancer ton appli dans un répertoire contenant un sous-répertoire lib qui inclut tes libraries :(
Comme je vois que tu utilises ant, voici comment je fais moi (extrait d'un de mes build.xml) :
----------------8<------------------------------------- <!-- TASK: INCLLIB --> <target name="incllib" depends="compile"> <!-- Unzips the jar files in the lib/ directory to the build directory to include the external libraries --> <unzip dest="${build}"> <fileset dir="${lib}"> <include name="**/*.jar"/> </fileset> </unzip> </target> ---------------->8-------------------------------------
Tu peux aussi bien sûr le faire à la main avec jar -xf
Si tu mets tes classes directement dans le jar, pas besoin de Class-Path dans le Manifest.
Je ne suis pas super enthousiaste avec cette solution, mais bon je n'ai rien trouvé de mieux jusqu'à présent.
F.
DeM Zed wrote:
Salut,
J'ai créé un build.xml qui me génère un application.jar dont voici
l'archi :
mes.class.java
lib <= mes librairies connexes (commons digester, ...)
config <= mes fichiers de config
J'ai généré un MANIFEST.MF dont voici le contenu :
Manifest-Version: 1.2
Ant-Version: Apache Ant 1.6.5
Created-By: 1.5.0_05-b05 (Sun Microsystems Inc.)
Built-By: THALES SERVICES SAS
Main-Class: i2.application.demeter.client.RunClient
Specification-Title: Utilitaire d'exploitation du client DEMETER
Specification-Version: 1.4
Specification-Vendor: SCHAPI
Implementation-Title: i2.application.demeter.client
Implementation-Version: 0.1 December 8 2005
Implementation-Vendor: THALES SERVICES SAS
Sealed: false
Class-Path: lib/commons-collections-3.1.jar, lib/commons-digester-1.7.
jar, lib/commons-lang-2.1.jar, lib/commons-logging-api.jar, lib/log4j
-1.2.12.jar
Quand je fais java -jar application.jar, je me prends une
ClassNotFoundException sur l'une des classes de mes librairies
connexes.
Hors quand je met ce jar dans un répertoire où sont stockée mes
libs, je n'ai pas d'erreur...
Une idée?
Merci, je suis paumé....
Tu ne peux pas mettre des jars de libraries dans ton jar. Enfin, tu
peux, mais ils ne sont pas lues.
Si ca fonctionne quand tu es dans ton répertoire, c'est parce que ton
jar lit les jars du répertoire ./lib, pas les jars qui sont dans le jar.
La solution ? Déjarrer tes libs dans ton jar, ou alors toujours lancer
ton appli dans un répertoire contenant un sous-répertoire lib qui inclut
tes libraries :(
Comme je vois que tu utilises ant, voici comment je fais moi (extrait
d'un de mes build.xml) :
----------------8<-------------------------------------
<!-- TASK: INCLLIB -->
<target name="incllib" depends="compile">
<!-- Unzips the jar files in the lib/ directory to the build
directory to include the external libraries -->
<unzip dest="${build}">
<fileset dir="${lib}">
<include name="**/*.jar"/>
</fileset>
</unzip>
</target>
---------------->8-------------------------------------
Tu peux aussi bien sûr le faire à la main avec jar -xf
Si tu mets tes classes directement dans le jar, pas besoin de Class-Path
dans le Manifest.
Je ne suis pas super enthousiaste avec cette solution, mais bon je n'ai
rien trouvé de mieux jusqu'à présent.
J'ai créé un build.xml qui me génère un application.jar dont voici l'archi : mes.class.java lib <= mes librairies connexes (commons digester, ...) config <= mes fichiers de config
J'ai généré un MANIFEST.MF dont voici le contenu : Manifest-Version: 1.2 Ant-Version: Apache Ant 1.6.5 Created-By: 1.5.0_05-b05 (Sun Microsystems Inc.) Built-By: THALES SERVICES SAS Main-Class: i2.application.demeter.client.RunClient Specification-Title: Utilitaire d'exploitation du client DEMETER Specification-Version: 1.4 Specification-Vendor: SCHAPI Implementation-Title: i2.application.demeter.client Implementation-Version: 0.1 December 8 2005 Implementation-Vendor: THALES SERVICES SAS Sealed: false Class-Path: lib/commons-collections-3.1.jar, lib/commons-digester-1.7. jar, lib/commons-lang-2.1.jar, lib/commons-logging-api.jar, lib/log4j -1.2.12.jar
Quand je fais java -jar application.jar, je me prends une ClassNotFoundException sur l'une des classes de mes librairies connexes. Hors quand je met ce jar dans un répertoire où sont stockée mes libs, je n'ai pas d'erreur...
Une idée?
Merci, je suis paumé....
Tu ne peux pas mettre des jars de libraries dans ton jar. Enfin, tu peux, mais ils ne sont pas lues.
Si ca fonctionne quand tu es dans ton répertoire, c'est parce que ton jar lit les jars du répertoire ./lib, pas les jars qui sont dans le jar. La solution ? Déjarrer tes libs dans ton jar, ou alors toujours lancer ton appli dans un répertoire contenant un sous-répertoire lib qui inclut tes libraries :(
Comme je vois que tu utilises ant, voici comment je fais moi (extrait d'un de mes build.xml) :
----------------8<------------------------------------- <!-- TASK: INCLLIB --> <target name="incllib" depends="compile"> <!-- Unzips the jar files in the lib/ directory to the build directory to include the external libraries --> <unzip dest="${build}"> <fileset dir="${lib}"> <include name="**/*.jar"/> </fileset> </unzip> </target> ---------------->8-------------------------------------
Tu peux aussi bien sûr le faire à la main avec jar -xf
Si tu mets tes classes directement dans le jar, pas besoin de Class-Path dans le Manifest.
Je ne suis pas super enthousiaste avec cette solution, mais bon je n'ai rien trouvé de mieux jusqu'à présent.
F.
Christophe Roudet
onejar (http://one-jar.sourceforge.net/) peut faire l'affaire.
Christophe
"flipouk" wrote in message news:43993c49$0$29566$
DeM Zed wrote:
Salut,
J'ai créé un build.xml qui me génère un application.jar dont voici l'archi : mes.class.java lib <= mes librairies connexes (commons digester, ...) config <= mes fichiers de config
J'ai généré un MANIFEST.MF dont voici le contenu : Manifest-Version: 1.2 Ant-Version: Apache Ant 1.6.5 Created-By: 1.5.0_05-b05 (Sun Microsystems Inc.) Built-By: THALES SERVICES SAS Main-Class: i2.application.demeter.client.RunClient Specification-Title: Utilitaire d'exploitation du client DEMETER Specification-Version: 1.4 Specification-Vendor: SCHAPI Implementation-Title: i2.application.demeter.client Implementation-Version: 0.1 December 8 2005 Implementation-Vendor: THALES SERVICES SAS Sealed: false Class-Path: lib/commons-collections-3.1.jar, lib/commons-digester-1.7. jar, lib/commons-lang-2.1.jar, lib/commons-logging-api.jar, lib/log4j -1.2.12.jar
Quand je fais java -jar application.jar, je me prends une ClassNotFoundException sur l'une des classes de mes librairies connexes. Hors quand je met ce jar dans un répertoire où sont stockée mes libs, je n'ai pas d'erreur...
Une idée?
Merci, je suis paumé....
Tu ne peux pas mettre des jars de libraries dans ton jar. Enfin, tu peux, mais ils ne sont pas lues.
Si ca fonctionne quand tu es dans ton répertoire, c'est parce que ton jar lit les jars du répertoire ./lib, pas les jars qui sont dans le jar. La solution ? Déjarrer tes libs dans ton jar, ou alors toujours lancer ton appli dans un répertoire contenant un sous-répertoire lib qui inclut tes libraries :(
Comme je vois que tu utilises ant, voici comment je fais moi (extrait d'un de mes build.xml) :
----------------8<------------------------------------- <!-- TASK: INCLLIB --> <target name="incllib" depends="compile"> <!-- Unzips the jar files in the lib/ directory to the build directory to include the external libraries --> <unzip dest="${build}"> <fileset dir="${lib}"> <include name="**/*.jar"/> </fileset> </unzip> </target> ---------------->8-------------------------------------
Tu peux aussi bien sûr le faire à la main avec jar -xf
Si tu mets tes classes directement dans le jar, pas besoin de Class-Path dans le Manifest.
Je ne suis pas super enthousiaste avec cette solution, mais bon je n'ai rien trouvé de mieux jusqu'à présent.
F.
onejar (http://one-jar.sourceforge.net/) peut faire l'affaire.
Christophe
"flipouk" <flipouk@yahoo.com> wrote in message
news:43993c49$0$29566$da0feed9@news.zen.co.uk...
DeM Zed wrote:
Salut,
J'ai créé un build.xml qui me génère un application.jar dont voici
l'archi :
mes.class.java
lib <= mes librairies connexes (commons digester, ...)
config <= mes fichiers de config
J'ai généré un MANIFEST.MF dont voici le contenu :
Manifest-Version: 1.2
Ant-Version: Apache Ant 1.6.5
Created-By: 1.5.0_05-b05 (Sun Microsystems Inc.)
Built-By: THALES SERVICES SAS
Main-Class: i2.application.demeter.client.RunClient
Specification-Title: Utilitaire d'exploitation du client DEMETER
Specification-Version: 1.4
Specification-Vendor: SCHAPI
Implementation-Title: i2.application.demeter.client
Implementation-Version: 0.1 December 8 2005
Implementation-Vendor: THALES SERVICES SAS
Sealed: false
Class-Path: lib/commons-collections-3.1.jar, lib/commons-digester-1.7.
jar, lib/commons-lang-2.1.jar, lib/commons-logging-api.jar, lib/log4j
-1.2.12.jar
Quand je fais java -jar application.jar, je me prends une
ClassNotFoundException sur l'une des classes de mes librairies
connexes.
Hors quand je met ce jar dans un répertoire où sont stockée mes
libs, je n'ai pas d'erreur...
Une idée?
Merci, je suis paumé....
Tu ne peux pas mettre des jars de libraries dans ton jar. Enfin, tu peux,
mais ils ne sont pas lues.
Si ca fonctionne quand tu es dans ton répertoire, c'est parce que ton jar
lit les jars du répertoire ./lib, pas les jars qui sont dans le jar.
La solution ? Déjarrer tes libs dans ton jar, ou alors toujours lancer ton
appli dans un répertoire contenant un sous-répertoire lib qui inclut tes
libraries :(
Comme je vois que tu utilises ant, voici comment je fais moi (extrait d'un
de mes build.xml) :
----------------8<-------------------------------------
<!-- TASK: INCLLIB -->
<target name="incllib" depends="compile">
<!-- Unzips the jar files in the lib/ directory to the build
directory to include the external libraries -->
<unzip dest="${build}">
<fileset dir="${lib}">
<include name="**/*.jar"/>
</fileset>
</unzip>
</target>
---------------->8-------------------------------------
Tu peux aussi bien sûr le faire à la main avec jar -xf
Si tu mets tes classes directement dans le jar, pas besoin de Class-Path
dans le Manifest.
Je ne suis pas super enthousiaste avec cette solution, mais bon je n'ai
rien trouvé de mieux jusqu'à présent.
onejar (http://one-jar.sourceforge.net/) peut faire l'affaire.
Christophe
"flipouk" wrote in message news:43993c49$0$29566$
DeM Zed wrote:
Salut,
J'ai créé un build.xml qui me génère un application.jar dont voici l'archi : mes.class.java lib <= mes librairies connexes (commons digester, ...) config <= mes fichiers de config
J'ai généré un MANIFEST.MF dont voici le contenu : Manifest-Version: 1.2 Ant-Version: Apache Ant 1.6.5 Created-By: 1.5.0_05-b05 (Sun Microsystems Inc.) Built-By: THALES SERVICES SAS Main-Class: i2.application.demeter.client.RunClient Specification-Title: Utilitaire d'exploitation du client DEMETER Specification-Version: 1.4 Specification-Vendor: SCHAPI Implementation-Title: i2.application.demeter.client Implementation-Version: 0.1 December 8 2005 Implementation-Vendor: THALES SERVICES SAS Sealed: false Class-Path: lib/commons-collections-3.1.jar, lib/commons-digester-1.7. jar, lib/commons-lang-2.1.jar, lib/commons-logging-api.jar, lib/log4j -1.2.12.jar
Quand je fais java -jar application.jar, je me prends une ClassNotFoundException sur l'une des classes de mes librairies connexes. Hors quand je met ce jar dans un répertoire où sont stockée mes libs, je n'ai pas d'erreur...
Une idée?
Merci, je suis paumé....
Tu ne peux pas mettre des jars de libraries dans ton jar. Enfin, tu peux, mais ils ne sont pas lues.
Si ca fonctionne quand tu es dans ton répertoire, c'est parce que ton jar lit les jars du répertoire ./lib, pas les jars qui sont dans le jar. La solution ? Déjarrer tes libs dans ton jar, ou alors toujours lancer ton appli dans un répertoire contenant un sous-répertoire lib qui inclut tes libraries :(
Comme je vois que tu utilises ant, voici comment je fais moi (extrait d'un de mes build.xml) :
----------------8<------------------------------------- <!-- TASK: INCLLIB --> <target name="incllib" depends="compile"> <!-- Unzips the jar files in the lib/ directory to the build directory to include the external libraries --> <unzip dest="${build}"> <fileset dir="${lib}"> <include name="**/*.jar"/> </fileset> </unzip> </target> ---------------->8-------------------------------------
Tu peux aussi bien sûr le faire à la main avec jar -xf
Si tu mets tes classes directement dans le jar, pas besoin de Class-Path dans le Manifest.
Je ne suis pas super enthousiaste avec cette solution, mais bon je n'ai rien trouvé de mieux jusqu'à présent.
F.
flipouk
Christophe Roudet wrote:
onejar (http://one-jar.sourceforge.net/) peut faire l'affaire.
Christophe
C'est effectivement très intéressant. Merci beaucoup pour ce lien !
F.
Christophe Roudet wrote:
onejar (http://one-jar.sourceforge.net/) peut faire l'affaire.
Christophe
C'est effectivement très intéressant. Merci beaucoup pour ce lien !
onejar (http://one-jar.sourceforge.net/) peut faire l'affaire.
Christophe
C'est effectivement très intéressant. Merci beaucoup pour ce lien !
F.
kult
DeM Zed a écrit le 08/12/2005 à 16h25 :
Salut,
J'ai créé un build.xml qui me génère un application.jar dont voici l'archi : mes.class.java lib <= mes librairies connexes (commons digester, ...) config <= mes fichiers de config
J'ai généré un MANIFEST.MF dont voici le contenu : Manifest-Version: 1.2 Ant-Version: Apache Ant 1.6.5 Created-By: 1.5.0_05-b05 (Sun Microsystems Inc.) Built-By: THALES SERVICES SAS Main-Class: i2.application.demeter.client.RunClient Specification-Title: Utilitaire d'exploitation du client DEMETER Specification-Version: 1.4 Specification-Vendor: SCHAPI Implementation-Title: i2.application.demeter.client Implementation-Version: 0.1 December 8 2005 Implementation-Vendor: THALES SERVICES SAS Sealed: false Class-Path: lib/commons-collections-3.1.jar, lib/commons-digester-1.7. jar, lib/commons-lang-2.1.jar, lib/commons-logging-api.jar, lib/log4j -1.2.12.jar
Quand je fais java -jar application.jar, je me prends une ClassNotFoundException sur l'une des classes de mes librairies connexes. Hors quand je met ce jar dans un répertoire où sont stockée mes libs, je n'ai pas d'erreur...
Une idée?
Merci, je suis paumé....
in my main, your Class-Path elements (jar file) must be seperated by only space not comma
DeM Zed a écrit le 08/12/2005 à 16h25 :
Salut,
J'ai cr=E9=E9 un build.xml qui me g=E9n=E8re un application.jar dont voici
l'archi :
mes.class.java
lib <=3D mes librairies connexes (commons digester, ...)
config <=3D mes fichiers de config
J'ai g=E9n=E9r=E9 un MANIFEST.MF dont voici le contenu :
Manifest-Version: 1.2
Ant-Version: Apache Ant 1.6.5
Created-By: 1.5.0_05-b05 (Sun Microsystems Inc.)
Built-By: THALES SERVICES SAS
Main-Class: i2.application.demeter.client.RunClient
Specification-Title: Utilitaire d'exploitation du client DEMETER
Specification-Version: 1.4
Specification-Vendor: SCHAPI
Implementation-Title: i2.application.demeter.client
Implementation-Version: 0.1 December 8 2005
Implementation-Vendor: THALES SERVICES SAS
Sealed: false
Class-Path: lib/commons-collections-3.1.jar, lib/commons-digester-1.7.
jar, lib/commons-lang-2.1.jar, lib/commons-logging-api.jar, lib/log4j
-1.2.12.jar
Quand je fais java -jar application.jar, je me prends une
ClassNotFoundException sur l'une des classes de mes librairies
connexes.
Hors quand je met ce jar dans un r=E9pertoire o=F9 sont stock=E9e mes
libs, je n'ai pas d'erreur...
Une id=E9e?
Merci, je suis paum=E9....
in my main, your Class-Path elements (jar file) must be seperated by only space not comma
J'ai créé un build.xml qui me génère un application.jar dont voici l'archi : mes.class.java lib <= mes librairies connexes (commons digester, ...) config <= mes fichiers de config
J'ai généré un MANIFEST.MF dont voici le contenu : Manifest-Version: 1.2 Ant-Version: Apache Ant 1.6.5 Created-By: 1.5.0_05-b05 (Sun Microsystems Inc.) Built-By: THALES SERVICES SAS Main-Class: i2.application.demeter.client.RunClient Specification-Title: Utilitaire d'exploitation du client DEMETER Specification-Version: 1.4 Specification-Vendor: SCHAPI Implementation-Title: i2.application.demeter.client Implementation-Version: 0.1 December 8 2005 Implementation-Vendor: THALES SERVICES SAS Sealed: false Class-Path: lib/commons-collections-3.1.jar, lib/commons-digester-1.7. jar, lib/commons-lang-2.1.jar, lib/commons-logging-api.jar, lib/log4j -1.2.12.jar
Quand je fais java -jar application.jar, je me prends une ClassNotFoundException sur l'une des classes de mes librairies connexes. Hors quand je met ce jar dans un répertoire où sont stockée mes libs, je n'ai pas d'erreur...
Une idée?
Merci, je suis paumé....
in my main, your Class-Path elements (jar file) must be seperated by only space not comma