Comment trouver l'id de processus d'un processus Java en cours d'exécution sur Windows? Et comment tuer le processus seul?


Je veux tuer le particulier processus Java dans Windows comme sous Linux (ps -aux pour obtenir processid et puis kill processid pour tuer le processus).

Author: Evan Carroll, 2012-10-23

7 answers

Vous pouvez utiliser le jps utilitaire inclus dans le JRE pour trouver l'id de processus d'un processus Java. La sortie vous montrera le nom du fichier JAR exécutable ou le nom de la classe principale.

Ensuite, utilisez le gestionnaire des tâches Windows pour terminer le processus. Si vous voulez le faire sur la ligne de commande, utilisez

TASKKILL /PID %PID%
 30
Author: Ingo Kegel, 2012-10-23 08:02:12

Vous pouvez également trouver le PID d'un programme java avec le gestionnaire des tâches. Vous activez les colonnes PID et de ligne de commande View -> Select Columns et pouvez alors trouver le bon processus.

Votre résultat sera quelque chose comme ceci : entrez la description de l'image ici

 13
Author: cete3, 2013-10-17 16:06:53

Après avoir défini le chemin de votre jdk, utilisez JPS.Ensuite, vous pouvez eaisly le tuer par le Gestionnaire des tâches
JPS vous donnera tous les processus java

 8
Author: khan, 2012-10-23 08:09:41

Cela fonctionnera même lorsqu'il y a plusieurs instances de jar en cours d'exécution

wmic Path win32_process Where "CommandLine Like '%yourname.jar%'" Call Terminate
 6
Author: Vinaykumar Patel, 2017-01-06 07:46:39

La solution que j'ai trouvée est très simple. Utilisez le Runtime WMIC et Java de Window pour localiser et tuer le processus.

Partie 1: Vous devez mettre une sorte d'identifiant dans la ligne de commande de démarrage de votre application. Par exemple quelque chose comme:

String id = "com.domain.app";

Partie 2: Lorsque vous exécutez votre application, assurez-vous d'inclure la chaîne. Disons que vous le démarrez à partir de Java, procédez comme suit:

Runtime.getRuntime().exec(
   "C:\...\javaw.exe -cp ... -Dwhatever=" + id + " com.domain.app.Main"
);

Partie 3: Pour tuer le processus, utilisez WMIC de Window. Assurez-vous simplement que votre application a été démarrée contenant votre identifiant à partir de ci-dessus:

Runtime.getRuntime().exec(
  "wmic process Where \"CommandLine Like '%" + id + "%'\" Call Terminate"
);
 2
Author: noblemaster, 2016-01-12 07:18:15

Dans Windows XP et versions ultérieures, il existe une commande: tasklist qui répertorie tous les ID de processus.

Pour tuer un processus dans Windows, voir:

Vraiment tuer un processus dans Windows | Débordement de Pile

Vous pouvez exécuter des commandes OS en Java par:

Runtime.getRuntime().exec("your command here");

Si vous devez gérer la sortie d'une commande, voir exemple: en utilisant Runtime.exec () en Java

 1
Author: heikkim, 2018-03-02 21:31:37

Ceci est spécifique à Windows. Je faisais face au même problème où je dois tuer un programme java spécifique en utilisant taskkill. Lorsque j'exécute le programme java, tasklist affichait le même programme avec le nom d'image défini comme java.EXE. Mais le tuer en utilisant taskkill /F java.exe arrêtera toutes les autres applications java autres que celle prévue qui n'est pas requise.

J'exécute donc le même programme java en utilisant:

start "MyProgramName" java java-program..

Ici, la commande start ouvrira une nouvelle fenêtre et exécutera le programme java avec le titre de la fenêtre à MyProgramName.

Maintenant, pour tuer ce programme java, utilisez la commande taskkill suivante:

taskkill /fi "MyProgramName"

Votre programme Java sera tué uniquement. Le repos ne sera pas affecté.

 0
Author: elite21, 2016-12-11 18:51:27