OVH Cloud OVH Cloud

Netbeans 4.1 : placer un jar dans le jar

3 réponses
Avatar
flipouk
Salut,
J'utilise Netbeans 4.1 pour un petit projet dans lequel je manipule du
XML à l'aide de JDOM.
Pour cela, j'ai ajouté jdom.jar aux Libraries.
Tout fonctionne bien quand je lance mon projet depuis NB (clic sur la
flèche verte).
Cependant, le jar qu'il me génère dans le répertoire dist/ ne contient
pas les classes de jdom.jar :(
Pour lancer mon projet indépendemment de NB, je dois donc entrer :
java -cp
/chemin/vers/projet/dist/projet.jar:/chemin/vers/javalibs/jdom/jar
my_package.Main
Ce qui est assez fastidieux par rapport à :
java -jar projet.jar
Certes, je pourrais ajouter jdom.jar dans mon $CLASSPATH mais mon appli
doit servir à d'autres personnes sur d'autres ordis. Je voudrais si
possible leur donner seulement comme instruction : "double-clique sur le
fichier jar" ou bien "entre java -jar fichier.jar"...
Bref comment puis intégrer jdom.jar dans projet.jar ???
J'ai fouillé les options de NB et j'ai googlé tant que j'ai pu. Je pense
que la solution est simple, mais impossible de la trouver :(
Merci pour votre aide !
F.
--
,_,
(O,O) Plus je connais les hommes,
( ) Plus j'aime ma machine
-"-"----------------------------------------------
Flipouk. GNU/Linux, MacOSX et Java : même combat !
--------------------------------------------------

3 réponses

Avatar
damien guerin
Dans ton jar projet.jar ajoute simplement jdom.jar (dans un répertoire
lib par exemple)
Ensuite dans META-INF ajoute le fichier MANIFEST.mf contenant par
exemple
Manifest-Version: 1.0
Class-Path: ../lib/jdom.jar
Main-Class: my_package.Main

Rappel pour construire un jar : jar cvf projet.jar *
Avatar
flipouk
damien guerin wrote:
Dans ton jar projet.jar ajoute simplement jdom.jar (dans un répertoire
lib par exemple)
Ensuite dans META-INF ajoute le fichier MANIFEST.mf contenant par
exemple
Manifest-Version: 1.0
Class-Path: ../lib/jdom.jar
Main-Class: my_package.Main

Rappel pour construire un jar : jar cvf projet.jar *

Merci beaucoup pour ta réponse, Damien. Mais, cela, je le savais... En

fait je n'ai pas dû être clair dans la description de mon problème. Je
voudrais "inclure un jar dans le jar" automatiquement avec Netbeans. La
compilation avec NB est basée sur ant. Cependant, je ne connais pas ant
en détail et leur build.xml est assez incompréhensible pour moi (en fait
je n'ose pas trop y toucher).
Il me faudrait un moyen de dire à ant d'ajouter ce Class-Path... Sous
NB, on peut éditer le build.xml comme on veut mais le MANIFEST.MF est
read-only :(
Merci en tout cas de ton aide.
F.

--
,_,
(O,O) Plus je connais les hommes,
( ) Plus j'aime ma machine
-"-"----------------------------------------------
Flipouk. GNU/Linux, MacOSX et Java : même combat !
--------------------------------------------------

Avatar
Delrue David
flipouk wrote:
damien guerin wrote:

Dans ton jar projet.jar ajoute simplement jdom.jar (dans un répertoire
lib par exemple)
Ensuite dans META-INF ajoute le fichier MANIFEST.mf contenant par
exemple
Manifest-Version: 1.0
Class-Path: ../lib/jdom.jar
Main-Class: my_package.Main

Rappel pour construire un jar : jar cvf projet.jar *

Merci beaucoup pour ta réponse, Damien. Mais, cela, je le savais... En

fait je n'ai pas dû être clair dans la description de mon problème. Je
voudrais "inclure un jar dans le jar" automatiquement avec Netbeans. La
compilation avec NB est basée sur ant. Cependant, je ne connais pas ant
en détail et leur build.xml est assez incompréhensible pour moi (en fait
je n'ose pas trop y toucher).
Il me faudrait un moyen de dire à ant d'ajouter ce Class-Path... Sous
NB, on peut éditer le build.xml comme on veut mais le MANIFEST.MF est
read-only :(
Merci en tout cas de ton aide.
F.



avec uberjar on peut le faire.

http://classworlds.codehaus.org/uberjar.html.

c'est tres simple a utiliser avec maven, je n'ai pas essayé avec ant.

http://classworlds.codehaus.org/uberjar.html

@+

P.S. 2eme essais le premier n'étant pas passé.
--
David Delrue

_-`````-, ,- '- .
.' .- - | | - -. `.
/.' / `.
:/ : _... ..._ `` :
:: : /._ .`:'_.._. || :
:: `._ ./ ,` : . _.'' .
`:. / | -. -. _ /
:._ _/ .' .@) @) ` ` ,.'
_/,--' .- .,-.`--`.
,'/'' (( ` )
/'/' `-' (
'/'' `._,-----'
''/' .,---'
''/' ;:
''/'' ''/
''/''/''
'/'/'
`;

We are Penguin. Resistance is futile. You will be assimilated.