link: li� l'application avec la lib. En java sa se traduit par l'inclusion
de la lmib dans le classpath:
        javac  -classpath /usr/lib/toto.jar;/usr/lib/lala.jar lala.java
La d�finition du classpath vers le jar d�fini une id�e de link de ton
aplication sur la librairie.

Dans tous les cas, je ne connais pas Ant, mais de ce que je sais de la
compil, il faut que tu pr�cises en dur les librairies que tu utilises cf
exemple plus haut. Et je te conseil donc d'�num�rer l'ensemble des
librairies � inclure au lieu de cr�er un jar contenant l'ensemble des .class
de tes librairies cf mail pr�c�dent.

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



Qu'entendez-vous par "linker" ?

Le lundi, 23 sep 2002, � 17:46 Europe/Paris, s�bastien Layer a �crit :

> 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 à