我是cmd的新手,所以請允許我問一個愚蠢的問題:我們如何通過Windows cmd阻止正在運行的Java進程?我們如何通過Windows cmd阻止正在運行的java進程?
例如,如果我們開始碼頭(一個小型web服務器),用下面的命令:
start javaw -jar start.jar
我們如何發現的過程,後來停止了嗎?
顯然,下面的命令不起作用:
stop javaw -jar start.jar
我是cmd的新手,所以請允許我問一個愚蠢的問題:我們如何通過Windows cmd阻止正在運行的Java進程?我們如何通過Windows cmd阻止正在運行的java進程?
例如,如果我們開始碼頭(一個小型web服務器),用下面的命令:
start javaw -jar start.jar
我們如何發現的過程,後來停止了嗎?
顯然,下面的命令不起作用:
stop javaw -jar start.jar
這是相當混亂,但你需要做類似如下:
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%
發現這個上this page。
(這種事情是容易得多,如果你有一個UNIX/LINUX系統...或者如果您運行的Cygwin或Windows類似。)
通常我不會有那麼多的Java進程打開,以便
taskkill /im javaw.exe
或
taskkill /im java.exe
應該足夠了。儘管如此,這將會殺死所有的實例。
'taskkill/f/im java.exe'在我的情況。感謝您的回答! – lordmegamax 2016-08-15 12:00:58
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
輸出的第二列)
當我跑的taskkill停止javaw.exe進程它會說,它已經終止,但仍然在運行。 jqs進程(java qucikstart)也需要停止。運行這個批處理文件處理了這個問題。
taskkill /f /im jqs.exe
taskkill /f /im javaw.exe
taskkill /f /im java.exe
我喜歡這一個。
wmic process where "name like '%java%'" delete
實際上,你可以殺了同樣的方式在遠程計算機上的進程。
wmic /node:computername /user:adminuser /password:password process where "name like '%java%'" delete
wmic太棒了!
開始javaw進程-DSTOP.PORT = 8079 -DSTOP.KEY =祕密的罐子start.jar
開始javaw進程-DSTOP.PORT = 8079 -DSTOP.KEY =祕密的罐子start.jar --stop
您可以使用PowerShell做到這一點:
$process = Start-Process "javaw" "-jar start.jar" -PassThru
taskkill /pid $process.Id
的taskkill
命令將正常關閉應用程序。
如果你想殺死並非所有的java進程,但特定的罐子運行。它也適用於多個罐子。
wmic Path win32_process Where "CommandLine Like '%YourJarName.jar%'" Call Terminate
否則taskkill /im java.exe
將努力殺死所有Java進程
(在Windows操作系統沒有Service)春季啓動啓動/停止樣品。
的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
你嘗試'按Ctrl + C'或' Ctrl + Break'? – 2010-04-15 09:00:03
是的,但我可以用Ctrl + C或Ctrl + Break建立一個.bat文件來停止它嗎? – 2010-04-15 09:05:38
也許檢查taskkill命令。它有很多選擇殺死進程的選項:按進程ID,按名稱模式,擁有用戶等。 但我建議首先尋找一種標準的,不太暴力的關閉特定應用程序的方式(服務器通常有某種類型「stop」命令) – 2010-04-15 09:10:40