Lancer une classe Java à partir d’un bash Windows

Publié dans Java | Marqué avec , , , , ,
Share

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.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*