Bonjour,

Je bloque sur un problème de shell.

Je constitue le classpath d'un programme java à l'aide du contenu d'un fichier (généré par un plugin maven).

Ensuite, dans un sh permettant le lancement de ce programme, je récupère le contenu de ce fichier dans une variable avant d'appeler la commande java :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
  export _CLASSPATH_LIB=$(<lib/classpath_lib_linux.txt)
  java -classpath $_CLASSPATH_LIB:autrejar.jar maClasse
Le contenu de ce fichier ressemble à ça :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
$BATCH_HOME/lib/monjar1.jar:$BATCH_HOME/lib/monjar2.jar: ....
La variable $BATCH_HOME est définit dans le .profile de l'utilisateur exécutant le shell.
Or cette variable ne semble pas être interprété lorsque le contenu du classpath provient d'un fichier.

En effet, le code ci-dessous, quand à lui, fonctionne correctement :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
  export _CLASSPATH_LIB=$BATCH_HOME/lib/monjar1.jar:$BATCH_HOME/lib/monjar2.jar:...
  java -classpath $_CLASSPATH_LIB:autrejar.jar maClasse
Est ce que quelqu'un a une idée expliquant le fait que le variable $BATCH_HOME ne semble pas être reconnue en tant que tel lorsque le classpath provient d'un fichier ?

Merci.