le mieux, je pense, est de linker avec plusieurs jar de mani�res � favoriser
la modularit�. Ainsi si l'une de tes lib est updat�, tu n'as plus qu'� la
patcher, tu n'ai pas oblig� de relivrer l'ensemble des librairies. C'est mon
point de vue.

-----Message d'origine-----
De : Aurelien Mazurie [mailto:[EMAIL PROTECTED]]
Envoy� : lundi 23 septembre 2002 17:35
� : [EMAIL PROTECTED]
Objet : Re: Classpath: suite



Oui, le "gros" jar contiendrai les "petits" jar, pas leurs classes. Il
me semble que c'est possible, a priori ? Sinon, je peux toujours
demander � mon script Ant de d�compresser les .jar externes dans le
r�pertoire de build, et "jarrer" le tout.

Quelqu'un sait si c'est vraiment moche d'inclure des jars dans un jar ?

Aur�lien Mazurie

Le lundi, 23 sep 2002, � 17:19 Europe/Paris, LAMY Olivier a �crit :

> Question :
> Le "gros" Jar contient les autres Jars ou les classes de ces Jar ?
> De mon humble avis, la deuxi�me solution para�t �tre plus acceptable !
> Car un jar qui contient d'autres Jar (je n'y crois que moyennement,
> cela dit
> pourquoi pas !)
>
> ----- Original Message -----
> From: "Aurelien Mazurie" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Monday, September 23, 2002 5:12 PM
> Subject: Classpath: suite
>
>
>>
>>> une piste :
>>>
>>> <path id="path.classpath">
>>>     <!--<pathelement location="${dir.extclass}/**/*.jar" />-->
>>>     <fileset dir="${dir.extclass}" />
>>> </path>
>>>
>>> o� ${dir.extclass} pointe vers le r�pertoire contenant les jars (chez
>>> moi �a
>>> marche)
>>
>> Ca marche ! Effectivement, mon erreur (para�t-il "classique", dans le
>> fichier o� j'ai lu �a) viens du fait que j'indique un r�pertoire de
>> .jar dans le classpath, au lien d'indiquer les .jar eux-m�me (qui
>> sont,
>> du point de vue de Java, des r�pertoires)... La directive "fileset"
>> sous Ant permet de reconstituer une liste de ces jars, et de les
>> injecter dans le classpath. Ouf !
>>
>> Mais j'ai un autre probl�me maintenant =)
>> Une fois tout compil� (ca compile sans probl�mes), j'aimerai tout
>> mettre dans un .jar, pour n'avoir plus qu'un seul fichier � manipuler.
>> Or, une fois cr�� le jar (je met tout dedans: les .class bien s�r,
>> mais
>> aussi les .jar des classes externes que j'utilise), � l'ex�cution il
>> ne
>> me retrouve pas une classe particuli�re (celle du JDBC MySQL), que
>> j'instancie comme �a:
>>
>> Class.forName("com.mysql.jdbc.Driver").newInstance();
>>
>> Toutes les autres classes contenues dans les autres .jar (que
>> j'utilise
>> par un simple "import ...") semblent accessibles sans probl�mes (en
>> tout cas je n'ai pas d'erreur pour elles; peux-�tre l'erreur pour
>> mm.mysql masque-t'elle les autres en interrompant la compilation � ce
>> stade ?).
>>
>> Sauriez-vous comment instancier cette classe "com.mydsl.jdbc.Driver" ?
>>
>> Aur�lien Mazurie
>>
>>> ----- Original Message -----
>>> From: "Aurelien Mazurie" <[EMAIL PROTECTED]>
>>> To: <[EMAIL PROTECTED]>
>>> Sent: Monday, September 23, 2002 12:09 PM
>>> Subject: Classpath
>>>
>>>
>>>>
>>>> Je suis nul !
>>>> Je sais, ca fait bizarre de commencer un e-mail avec cette
>>>> affirmation, mais je maintien: depuis le temps que je programme en
>>>> Java, je me suis toujours d�tach� des histoires de classpath en
>>>> faisant
>>>> un tour de passe-passe...
>>>>
>>>> Le probl�me est, j'imagine, tr�s simple pour vous tous; j'ai une
>>>> s�rie
>>>> de classes externes comprises dans des fichiers .jar, que - bien
>>>> s�r -
>>>> je veux appeller � partir de mon petit programme. Jusqu'� pr�sent,
>>>> je
>>>> me suis amus� � extraire l'arborescence de ces .jar dans mon
>>>> r�pertoire
>>>> contenant mes sources, et ainsi � la compilation il retrouvait tous
>>>> les
>>>> .class qu'il lui fallait.
>>>>
>>>> Mais bon, je me suis dis que ca ne faisait pas "pro", et en plus
>>>> c'�tait p�nible de devoir tout recommencer d�s lors qu'une nouvelle
>>>> version des librairies que j'importait en .jar sortait. D'o� ma
>>>> volont�
>>>> d'organiser mes fichiers comme �a:
>>>>
>>>> /build - r�pertoire o� javac s'amuse
>>>> /src - r�pertoire contenant UNIQUEMENT mes classes � moi
>>>> /classes - r�pertoire contenant les .jars dont je veux utiliser les
>>>> classes
>>>>
>>>> Comme j'aime bien Ant, j'ai essay� de modifier mon petit build.xml
>>>> pour prendre en compte le r�pertoire /classes dans le CLASSPATH. Le
>>>> probl�me c'est que je n'arrive pas � lui faire entendre raison...
>>>> Pff... Voil� mon fichier:
>>>>
>>>> <project name="MyProject" default="compile" basedir=".">
>>>>
>>>>   <property name="dir.source" value="src" />
>>>>   <property name="dir.build" value="build" />
>>>>   <property name="dir.extclass" value="classes" />
>>>>
>>>>   <path id="path.classpath">
>>>>    <pathelement location="${dir.extclass}/**/*.jar" />
>>>>   </path>
>>>>
>>>> <!-- Initialisation: creation du repertoire de destination -->
>>>>   <target name="init">
>>>>    <tstamp/>
>>>>    <mkdir dir="${dir.build}" />
>>>>   </target>
>>>>
>>>> <!-- Compilation -->
>>>>   <target name="compile" depends="init">
>>>>    <javac srcdir="${dir.source}" destdir="${dir.build}">
>>>>     <classpath refid="path.classpath" />
>>>>    </javac>
>>>>   </target>
>>>>
>>>> </project>
>>>>
>>>> Quelqu'un saurait me dire o� je me trompe ? A la compilation, il me
>>>> trouve toutes mes classes � moi (encore heureux...), mais bien s�r
>>>> aucune de celles incluses dans les fichiers classes/*.jar
>>>>
>>>> Ouin ! (snif)
>>>>
>>>> Aur�lien Mazurie
>>>
>
>
>
> **********************************************************************
> Ce message �lectronique et tous les fichiers joints ainsi que  les
> informations contenues dans ce message (ci apr�s "le message"), sont
> confidentiels et destin�s exclusivement � l'usage de la  personne �
> laquelle
> ils sont adress�s. Si vous avez re�u ce message par erreur, merci  de
> le
> renvoyer � son �metteur et de le d�truire. Toute diffusion,
> publication,
> totale ou partielle ou divulgation sous quelque forme que ce soit non
> express�ment autoris�es de ce message, sont interdites.
>
> **********************************************************************
> This e-mail, any attachments and the information contained (herein "
> the
> message") are confidential and intended solely for the use of the
> addressee(s) if you have received this message in error please send it
> back
> to the sender and delete it. Unauthorized publication, use,
> dissemination or
> disclosure, either whole or partial, of this  message is strictly
> prohibited.
>

Répondre à