Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

classpath et wildcard et projets différents

4 réponses
Avatar
pere.noel
question extrêmement basique, que je me pose à l'instant.

en java quant on définit un cp, peut-on utiliser la wild card, càd au
lieu d'écrire exhaustivement :

CLASSPATH=/chemin/vers/un.jar:...:/chemin/vers/nieme.jar

peut-on utiliser :

CLASSPATH=/chemin/vers/*.jar ???

bien sûr si on utilise tous les jars dans le dossier /chemin/vers.

--
une bévue

4 réponses

Avatar
Hervé AGNOUX
Une bévue wrote:


question extrêmement basique, que je me pose à l'instant.

en java quant on définit un cp, peut-on utiliser la wild card, càd au
lieu d'écrire exhaustivement :

CLASSPATH=/chemin/vers/un.jar:...:/chemin/vers/nieme.jar

peut-on utiliser :

CLASSPATH=/chemin/vers/*.jar ???

bien sûr si on utilise tous les jars dans le dossier /chemin/vers.



"En java" est une erreur. Ici nous sommes au niveau de la ligne de commande,
et c'est le shell - même si nous sommes sous windows - qui gère les
wildcards.

En l'occurrence, cela ne fonctionne pas :-) Ici il te donne, je crois, une
liste de fichiers séparés par des espaces ; or il faut qu'ils soient
séparés par des ':'. Peut être un coup de commande "tr" sous linux te
donnerait-il quelque chose d'intéressant.

Plus intéressant encore est de passer par des scripts Ant ou Maven qui
s'occupent peu ou prou de toute cette tuyauterie.

Cordialement.


--
Hervé AGNOUX
http://www.diaam-informatique.com

Avatar
TestMan
question extrêmement basique, que je me pose à l'instant.

en java quant on définit un cp, peut-on utiliser la wild card, càd au
lieu d'écrire exhaustivement :

CLASSPATH=/chemin/vers/un.jar:...:/chemin/vers/nieme.jar

peut-on utiliser :

CLASSPATH=/chemin/vers/*.jar ???

bien sûr si on utilise tous les jars dans le dossier /chemin/vers.


Non, je pense pas, sauf si tes Jar sont des extensions standards, et que
tu les as mis dans lib/ext !

Si ce sont des bibliothèques d'une appli, la liste des jar nécessaires
change trés rarement, tu peux donc les mettre en dépendances Class-Path
dans le jar principal contenant en plus le Main-Class ...

celà te permettra de lancer directement : java -jar appli.jar

Un "bon EDI" te ferra ça au petits oignons en quasi-automatique ...

A+
TM

Avatar
pere.noel
TestMan wrote:


Un "bon EDI" te ferra ça au petits oignons en quasi-automatique ...
oui, oui, j'ai fait ça mais tout d'un coup j'ai douté de l'intérêt ;-)



--
une bévue

Avatar
pere.noel
Hervé AGNOUX wrote:


En l'occurrence, cela ne fonctionne pas :-) Ici il te donne, je crois, une
liste de fichiers séparés par des espaces ; or il faut qu'ils soient
séparés par des ':'. Peut être un coup de commande "tr" sous linux te
donnerait-il quelque chose d'intéressant.


c'est l'espace comme séparateur que j'avais oublié, en fait j'avais bien
mis cela dans un script (zsh) mais je me suis mis à douter,
effectivement la ligne de commande java demande ":" comme séparateur...

en zsh j'ai écrit ça :
jars=($XINDICE_LIB/*.jar)
xcp=$jars[0]
for (( i=1; i < $#jars; i++)) do xcp=$xcp:$jars[i] done
export CLASSPATH=$xcp

mais c'est vrai, je n'aime pas trop setter un classpath, vaut mieux le
faire au coup par coup, j'ai eu des expériences de conflit entre jars...

maven ça fait un moment que j'ai oublié...


--
une bévue