URL: https://linuxfr.org/forums/programmation-java/posts/du-java-qui-lance-un-cmd-qui-lance-du-java-comment-killer-tou Title: Du Java qui lance un cmd qui lance du Java... Comment killer tout ça? Authors: Sixel Date: 2005年04月06日T13:10:53+02:00 Tags: Score: 0 Voici l'idée : J'ai toute une série de de batches windows, chacun faisant un appel à la même classe Java mais avec des paramètres différents pour le main. Jusque là, je me contentais de les lancer via la ligne de commande, et un ^C suffisait à interrompre les batches et l'exécution des classes Java du même coup. Afin de rendre le tout un poil plus clair, j'ai créé une classe (qui elle-même sert de base à une GUI) qui me permet de lancer et interrompre ces batches. Le lancement se fait via un bon vieux Process pr = Runtime.getRuntime().exec(monBatch) des familles, et les interruptions via le non moins célèbre pr.destroy(); Un petit coup d'oeil au task manager me confirme bien que 2 processus sont créés au lancement (cmd.exe et java.exe), mais qu'au moment de l'interruption manuelle, seul le cmd est tué, la classe Java continuant son exécution comme si de rien n'était. J'ai pas mal cherché sur le net, c'est une question assez courante, mais les réponses sont assez directe : c'est pas possible de tuer les processus fils en ne tuant que le père. Ma question est donc : Y aurait-il un moyen détourné d'avoir accès aux processus fils? Je pensais bien zapper les batches, et appeler directement les classes (il devient donc trivial de les killer), mais c'est pas super flexible, notamment au niveau des classpath, qui sont définis dans les batches pour le moment. Je suis prêt à faire une refonte de code si nécessaire, car pour le moment je suis vraiment dans l'impasse... Merci d'avance!