Continuons à faire un petit peu de MS-DOS. Cette fois-ci, le but est de lancer une classe Java contenant un main
, à partir d’un bash (fichier .bat
) Windows. La commande à utiliser est tout simplement la commande java
, avec en paramètre :
- le chemin vers les classes à utiliser et toutes les librairies éventuelles
- l’environnement (par exemple les paramètres pour le NamingContext) : j’ai pas tout capté
- le nom de la classe à appeler en premier (celle qui contient la méthode main)
- les paramètres (on peut les faire précéder d’options -a, -b, -nimportequoi, de manière à faciliter leur récupération par le code Java)
Ce qui nous donne :
set CLASSPATH="C:/Projet/classes";"...librairie...jar" set ENV=-Djava.naming.factory.initial="org.jnp.interfaces.NamingContextFactory" -Djava.naming.provider.url="jnp://127.0.0.1:1099" set MAINCLASS=com.projet.MaClasse set PARAMS=-a "param1" -b "param2" java -cp %CLASSPATH% %ENV% %MAINCLASS% %PARAMS%
Et hop : ça lance la classe Java.
A l’occasion, il faudrait que je regarde le man
pour la commande java
sous Linux pour voir comment faire en bash. ça ne doit pas être bien plus compliqué !
L’intérêt derrière tout ça, c’est de pouvoir planifier le lancement de bouts de codes Java dans le temps. A l’aide d’un crontab (je ne sais plus quel est l’équivalent Windows), on lance à intervalle régulier le bash qui appelle la classe Java. Et c’est quand même pratique.
J’explique dans un autre billet comment récupérer proprement les paramètres dans le code Java.