2017-01-02 1 views
0

Je voudrais attribuer PID à mon application java (si c'est possible), et tuer tous les autres javaw.exe.PID java application et kill

Runtime.getRuntime().exec("taskkill /F /IM javaw.exe"); 

ou PID

Runtime.getRuntime().exec("taskkill /F /PID <ID>"); 

Je sais que cela tuer tous javaw.exe, mais je dois ma demande encore et en cours d'exécution.

Il devrait tuer l'application java spécifique, mais ils ont l'assignation de PID aléatoire. Je pense que le plus simple serait fermer toutes les applications Java en cours d'exécution sauf le mien.

+1

Tuer par PID est une exigence? Sinon, ouvrez une socket et l'écoute d'une commande shutdown est une solution beaucoup plus propre. – PeterMmm

+0

Bonjour, non, ce n'est pas le cas. Merci pour le plomb! – BoB3R

+1

Les PID sont donnés par le noyau. Ajoutez un argument d'identifiant no-op lors du lancement des applications "java -classpath ./lib com.package.MyApp key1 = val1 clé2 = val2 processidenfier = abcxyz123". Répertoriez les processus avec une liste complète d'arguments, tuez un par un avec PID en ignorant un processus java.exe actif. Ou utilisez JNI/JNA pour lire le pid courant http://stackoverflow.com/questions/35842/how-cana-a-java-program-get-its-own-process-id – Whome

Répondre

0

Je l'ai fait un peu différent. J'ai utilisé "wmic", pour lister tous les processus java et PID à la fin. Je prends les derniers chiffres et je les tue.

wmic process where "name like '%javaw%'"