JAR et Librairies...

tlehoucq Messages postés 49 Date d'inscription mercredi 17 mars 2004 Statut Membre Dernière intervention 27 février 2006 - 2 juin 2004 à 08:52
felipelvh Messages postés 27 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 10 juin 2004 - 2 juin 2004 à 14:15
Bonjour,

J'ai réalisé un JAR executable de mon programme, et je dois maintenant l'installer sur plusieurs postes. Le truc c que j'ai besoin de librairies qui ne sont pas dans le JDK, et pour l'instant j'ai copié ces librairies à l'emplacement de mon JAR.

Je voudrais savoir s'il était possible de ne pas à avoir à copier ces librairies dans le répertoire de mon JAR? Est-ce que je peux les copier dans le JDK, si oui comment spécifier un chemin relatif pour ces librairies??

Voici mon manifest:
Manifest-version: 1.0
Main-Class: planning.Planification
Class-Path: axis.jar jaxrpc.jar commons-discovery.jar commons-logging.jar log4j-1.2.8.jar saaj.jar wsdl4j.jar


Merci de votre aide ;)

11 réponses

felipelvh Messages postés 27 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 10 juin 2004
2 juin 2004 à 11:31
Salut !
ya plusieurs façons....
En general , moi , je met les librairies direct dans le jar comme ca ta qu'un fichier....
Mais je sais pas si c tres propre..
Sinon tu peut copier tes lib dans le repertoire :
"repJRE/lib/ext/."

voila ... ca dvrais marcher ...
ciao
tlehoucq Messages postés 49 Date d'inscription mercredi 17 mars 2004 Statut Membre Dernière intervention 27 février 2006
2 juin 2004 à 11:59
J'ai copier les librairies dans le repertoire /lib/ext/ et ça marche nikel!! MERCI BEAUCOUP.

Est-ce qur tu sais si je créé un répertoire (du nom que je souhaite) dans /lib/ext/ et que je place mes librairies dedans, cela va t-il marcher?

Encore merci ;)
felipelvh Messages postés 27 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 10 juin 2004
2 juin 2004 à 12:16
Ca je sais pas...
mais je suppose que pour acceder a tes librairies, ca te rajoutera un nom de package devant..
example:
/lib/ext/monRep/maLib.jar

toutes les classes maLib.MaClasseX devriendront (ou plutot seront reconnues par) monRep.maLib.MaClasseX

MAIS j'en suis pas sur du tout : c à tester ....
bon courage
felipelvh Messages postés 27 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 10 juin 2004
2 juin 2004 à 12:21
OUPS! Sinon j'oubliais .....
Tes librairies , tu peut les mettre ou tu veut , du moment que le repertoire où elles se trouvent est dans ta variables d'environnement CLASSPATH ... (tu peut aussi la redefinir en lancant ton appli avec "java -cp monrep ...." )

voila c sutout ca qui est important : la CLASSPATH ...

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tlehoucq Messages postés 49 Date d'inscription mercredi 17 mars 2004 Statut Membre Dernière intervention 27 février 2006
2 juin 2004 à 12:56
merci pour ton aide,

une autre petite question, comment fais tu pour mettre tes librairies dans ton jar?? Est-ce que tu les mets simplement à la création ou tu les décompresses avant? Est-ce qu'il faut modifier le manifest?
felipelvh Messages postés 27 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 10 juin 2004
2 juin 2004 à 13:27
Donc ce que j'ai fais (ptetre ya dautre chose ki marche aussi..)

Pas touché au manifest...
Simplement mis le comptenu des lib (jar décompressé) dans mon jar (en ayan supprimé tout ce qui m'interresse pas)...
tu vois c pas tres propre mais ca marche bien ...
felipelvh Messages postés 27 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 10 juin 2004
2 juin 2004 à 13:29
PS :
Fais Attention de garder l'arborescence qu'il ya avait dans les librairies...
tlehoucq Messages postés 49 Date d'inscription mercredi 17 mars 2004 Statut Membre Dernière intervention 27 février 2006
2 juin 2004 à 13:59
Je suis en train d'eesayer ta méthode mais ça marche pa tro chez moi! :sad)

J'ai par exemple juste copié un fichier (Service.class) et recréé mon JAR, et quand je le lance j'obtiens l'erreur suivante:

Exception in thread "main" java.lang.NoClassDefFoundError:org/apache/axis/client/Service
        at planning.Planification.(Planification.java:58)
        at planning.Planification.main(Planification.java:719)


Cela signifie qu'il e trouve pas la classe Service.

Est-ce que je dois tout copier? Ou est-ce que je dois modifier mes classes java?
tlehoucq Messages postés 49 Date d'inscription mercredi 17 mars 2004 Statut Membre Dernière intervention 27 février 2006
2 juin 2004 à 14:08
C bon j'ai réussi, MERCI MERCI MERCI
felipelvh Messages postés 27 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 10 juin 2004
2 juin 2004 à 14:13
Non tu vois le prob la c l'arborescence ...apparemment si j'ai bien compris , t'as copier la classe Service à la racine de ton fichier jar alors que tu appelles org/apache/axis/client/Service.class
Il faut que tu laisse tes librairies telquelsont
autrement dis dans ton jar tu auras le repertoire org et tous ces sous repertoires...
Et il vaut mieux ne rien supprimer si t pas sur que c pas utilisé..
Moi je l'ai fais parceque j'utilisais une grosse librairie pour en fait me servir que d deux classes...
felipelvh Messages postés 27 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 10 juin 2004
2 juin 2004 à 14:15
bon ben c cool... :)
avec plaisir...
Rejoignez-nous