it-swarm.com.ru

Как мы можем остановить работающий процесс Java через Windows cmd?

Я новичок в cmd, поэтому позвольте мне задать глупый вопрос: как мы можем остановить работающий процесс Java через Windows cmd?

Например, если мы запустим Jetty (мини-веб-сервер) с помощью следующей команды:

start javaw -jar start.jar

Как нам найти процесс и остановить его позже?

Очевидно, что следующая команда не работает:

stop javaw -jar start.jar
21
Winston Chen

Это довольно грязно, но вам нужно сделать что-то вроде следующего:

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%

Нашел это на на этой странице .

(Подобные вещи намного проще, если у вас система UNIX/LINUX ... или если вы используете Cygwin или аналогичный в Windows.)

11
Stephen C

Когда я запускал taskkill, чтобы остановить процесс javaw.exe, он говорил, что он завершен, но продолжает работать. Процесс jqs (Java qucikstart) также необходимо остановить. Запуск этого командного файла решил проблему.

taskkill /f /im jqs.exe
taskkill /f /im javaw.exe
taskkill /f /im Java.exe
35
Tup

Мне нравится этот.

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

Вы можете фактически убить процесс на удаленной машине таким же образом.

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

wmic это круто!

21
rojo

Обычно у меня не так много открытых процессов Java

taskkill /im javaw.exe

или же

taskkill /im Java.exe

должно хватить. Это убьет все экземпляры Java, хотя.

8
Joey
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 - замените это на основной класс вашего приложения (вы можете найти его во втором столбце вывода jps -l)

2
vneste

В случае, если вы хотите уничтожить не все процессы Java, а конкретные запущенные jar-файлы. Это будет работать и для нескольких банок. 

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

Иначе taskkill /im Java.exe будет работать, чтобы убить все процессы Java

1
Vinaykumar Patel

start javaw -DSTOP.PORT = 8079 -DSTOP.KEY = secret -jar start.jar

start javaw -DSTOP.PORT = 8079 -DSTOP.KEY = секрет -jar start.jar --stop

1
ffoooo

Вы можете сделать это с помощью PowerShell:

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

Команда taskkill изящно закроет приложение.

0
Rosberg Linhares

(в ОС Windows без службы) Образец запуска/остановки Spring Boot. 

run.bat

@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

start.bat

@ECHO OFF
call run.bat start

stop.bat:

@ECHO OFF
call run.bat stop
0
sgrillon