Citation Envoyé par abdel_59 Voir le message
Je suppose que
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
for lib in `ls $SAV_HOME/WEB-INF/lib`
do
	CP="$CP:$SAV_HOME/WEB-INF/lib/$lib"
done
effectue une copie de lib mais où est l'emplacement source et l'emplacement cible?
Non, non, ça ne fait pas du tout de copie.

Juste pour clarifier, la variable (super bien nommée (merci l'auteur du script!)) "CP" veut dire "ClassPath". Elle indique une liste de chemins où java doit chercher ses librairies, ainsi qu'on peut le constater dans son utilisation en tant qu'argument de "-classpath" dans la commande qui suit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
java -Xmx512M -classpath $CP -DSAV_DATA=$SAV_DATA -DPRODUCT_LOG_HOME=/product_data/SAV/logs $1 $SAV_DATA/conf/batch_params.properties $2 $3 $4 $5
Au début la variable "CP" ne contient rien, ce qui, en gros (pour simplifier) est équivalent à une chaîne vide.

Si on suppose que "$SAV_HOME/WEB-INF/lib" contient les dossiers libA libB libC, alors la boucle va concaténer chaque lib pour que, finalement, la variable CP contienne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
CP=":$SAV_HOME/WEB-INF/lib/libA:$SAV_HOME/WEB-INF/lib/libB:$SAV_HOME/WEB-INF/lib/libC"
De cette manière, la commande java saura où aller chercher les librairies dont elle a besoin.