Comment Pouvons-nous arrêter un processus java en cours d'exécution à travers Windows cmd?

je suis un internaute novice dans cmd, alors permettez-moi de poser une question stupide: Comment Pouvons-nous arrêter un processus Java en cours d'exécution à travers cmd Windows?

par exemple, si nous démarrons Jetty (un mini serveur web) avec la commande suivante:

start javaw -jar start.jar

Comment trouver le processus et l'arrêter plus tard?

Évidemment, la commande suivante ne fonctionne pas:

stop javaw -jar start.jar
20
demandé sur Ross Ridge 2010-04-15 12:54:32

9 réponses

C'est plutôt compliqué, mais vous avez besoin de faire quelque chose comme ce qui suit:

START "do something window" dir
FOR /F "tokens=2" %I in ('TASKLIST /NH /FI "WINDOWTITLE eq do something window"' ) DO SET PID=%I
ECHO %PID%
TASKKILL /PID %PID%

Trouvé ceci sur cette page.

(ce genre de chose est beaucoup plus facile si vous avez un système UNIX / LINUX ... ou si vous utilisez Cygwin ou similaire sur Windows.)

11
répondu Stephen C 2010-04-15 11:03:06

quand j'ai couru taskkill pour arrêter la javaw.exe processus, il serait de dire qu'il avait mis fin, mais est resté en cours d'exécution. Le processus jqs (java qucikstart) doit également être arrêté. L'exécution de ce fichier batch a pris en charge le problème.

taskkill /f /im jqs.exe
taskkill /f /im javaw.exe
taskkill /f /im java.exe
30
répondu Tup 2011-10-17 15:39:47

j'aime celui-ci.

wmic process where "name like '%java%'" delete

Vous pouvez réellement tuer un processus sur une machine distante de la même façon.

wmic /node:computername /user:adminuser /password:password process where "name like '%java%'" delete

wmic est génial!

21
répondu rojo 2013-02-14 20:14:42

normalement je n'ai pas beaucoup de processus Java ouverts donc

taskkill /im javaw.exe

ou

taskkill /im java.exe

devrait suffire. Cela tuera instances de Java, cependant.

8
répondu Joey 2010-04-18 08:40:35
FOR /F "tokens=1,2 delims= " %%G IN ('jps -l') DO IF %%H==name.for.the.application.main.Class taskkill /F /PID %%G

name.for.the.application.main.Class - remplacez ceci dans la classe principale de votre application (vous pouvez le trouver dans la deuxième colonne de jps -l sortie)

2
répondu vneste 2017-04-11 15:25:57

start javaw-DSTOP.PORT=8079-DSTOP.Clé=démarrage du bocal secret.jar

start javaw-DSTOP.PORT=8079-DSTOP.Clé=démarrage du bocal secret.jar -- stop

1
répondu ffoooo 2013-06-12 13:54:31

dans le cas où vous voulez tuer non pas tous les processus java mais les jars spécif en cours d'exécution. Ça marchera aussi pour plusieurs pots.

wmic Path win32_process Where "CommandLine Like '%YourJarName.jar%'" Call Terminate

Else taskkill /im java.exe travail à tuer tous les processus java

1
répondu Vinaykumar Patel 2017-01-06 07:50:44

Vous pouvez faire cela avec PowerShell:

$process = Start-Process "javaw" "-jar start.jar" -PassThru
taskkill /pid $process.Id

taskkill la commande fermera gracieusement l'application.

0
répondu Rosberg Linhares 2017-01-06 04:01:05

(sur Windows OS sans Service) Exemple de démarrage/arrêt à ressort.

exécuter.chauve-souris

@ECHO OFF
IF "%1"=="start" (
    ECHO start your app name
    start "yourappname" java -jar -Dspring.profiles.active=prod yourappname-0.0.1.jar
) ELSE IF "%1"=="stop" (
    ECHO stop your app name
    TASKKILL /FI "WINDOWTITLE eq yourappname"
) ELSE (
    ECHO please, use "run.bat start" or "run.bat stop"
)
pause

démarrer.chauve-souris

@ECHO OFF
call run.bat start

arrêter.chauve-souris:

@ECHO OFF
call run.bat stop
0
répondu sgrillon 2017-09-18 10:24:48