(Java) Stopper une application .jar sur Windows

L’arrêt d’un .jar sur Windows n’est simple car à la différence de l’exe tous les .jar ont le même nom (java.exe), ce qui rend délicate l’utilisation de la commande kill.

Dans le paragraphe suivant je vais tenter de faire la synthèse des solutions (mauvaises et bonnes) que j’ai pu rencontrer.

Solution 1 : La solution sale et bourine

Tuer tous les processus java avec la commande taskkill /IM javaw.exe. A éviter car il s’agit de la pire des solutions même si elle a le mérite d’être simple et rapide dans un premier temps.

Solution 2 : la solution longue et fastidieuse

La solution qu’on retrouve a 90% sur le web ! Elle consiste à passer par un wrapper (i.e un logiciel tiers) pour créer un exe. Cette solution est mauvaise pour plusieurs raisons :
- Tout d’abord c’est trop long car cela signifie qu’il faudra se farcir l’installation du logiciel, apprendre à utiliser le wrapper pour généralement finir par générer son exe à la main avec du clic bouton.
- Ensuite, et même si cela est discutable, je trouve qu’il s’agit d’une solution pas naturelle car par principe si le jar est un exécutable ce n’est pas pour s’amuser à faire des bidouilles pour le convertir en exe (d’ailleurs c’est généralement quand tu choisi cette solution que ton collègue windowsien te tapote l’épaule en disant que java c’est parfois pas terrible).

Solution 3 : la bonne solution

Puisqu’il n’est pas possible de connaitre avec exactitude le PID à partir du nom de du .jar alors on va utiliser un autre moyen qui consiste non pas à récupérer le PID à partir du nom de l’exe, mais de récupérer le PID en reconnaissant le nom du jar dans la commande qui a servie à le lancer !
On utilisera pour cela un utilitaire fournit de base avec windows et qui se nomme WMIC (Windows Management Instrumentation Command-line).

La commande est la suivante suivante :

wmic process where caption="javaw.exe" get commandline,processid

A noter, il est possible de faire la même chose que WMIC avec l’outil jws.exe de java, mais il faut être prudent car il n’est distribué qu’avec la JDK et pas la JRE. Il vaut mieux dès lors privilégier WMIC quand on est sur Windows.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>