web-dev-qa-db-ja.com

Windows cmdで実行中のJavaプロセスを停止するにはどうすればよいですか?

私はcmdの初心者なので、愚かな質問をさせてください:実行中のJava Windows cmdによるプロセスを停止するにはどうすればよいですか?

たとえば、次のコマンドでJetty(ミニWebサーバー)を起動した場合:

start javaw -jar start.jar

プロセスを見つけて後で停止するにはどうすればよいですか?

明らかに、次のコマンドは機能しません。

stop javaw -jar start.jar
25
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システムを使用している場合、またはWindowsでCygwinなどを実行している場合にはるかに簡単です。)

11
Stephen C

Taskkillを実行してjavaw.exeプロセスを停止すると、終了したが実行されたままであると表示されます。 jqsプロセス(Java qucikstart)も停止する必要があります。このバッチファイルを実行することで問題が解決しました。

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

私はこれが好きです。

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

実際には、リモートマシン上のプロセスを同じ方法で強制終了できます。

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

wmicは素晴らしい!

22
rojo

通常、それほど多くのJavaプロセスが開いていないので、

taskkill /im javaw.exe

または

taskkill /im Java.exe

十分なはずです。ただし、これによりall Javaのインスタンスが強制終了されます。

8
Joey

windows cmdを開きます。最初にすべてのJavaプロセス、

jps -m

ここで名前を取得し、以下のコマンドを実行します。

for /f "tokens=1" %i in ('jps -m ^| find "Name_of_the_process"') do ( taskkill /F /PID %i )

または単にプロセスIDを殺します

taskkill /F /PID <ProcessID>

サンプル:)

C:\Users\tk>jps -m
15176 MessagingMain
18072 SoapUI-5.4.0.exe
15164 Jps -m
3420 org.Eclipse.equinox.launcher_1.3.201.v20161025-1711.jar -os win32 -ws win32 -Arch x86_64 -showsplash -launcher C:\Users\tk\Eclipse\jee-neon\Eclipse\eclipse.exe -name Eclipse --launcher.library C:\Users\tk\.p2\pool\plugins\org.Eclipse.equinox.launcher.win32.win32.x86_64_1.1.401.v20161122-1740\Eclipse_1617.dll -startup C:\Users\tk\Eclipse\jee-neon\Eclipse\\plugins/org.Eclipse.equinox.launcher_1.3.201.v20161025-1711.jar --launcher.appendVmargs -exitdata 4b20_d0 -product org.Eclipse.epp.package.jee.product -vm C:/Program Files/Java/jre1.8.0_131/bin/javaw.exe -vmargs -Dosgi.requiredJavaVersion=1.8 -XX:+UseG1GC -XX:+UseStringDeduplication -Dosgi.requiredJavaVersion=1.8 -Xms256m -Xmx1024m -Declipse.p2.max.threads=10 -Doomph.update.url=http://download.Eclipse.org/oomph/updates/milestone/latest -Doomph.redirection.index.redirection=index:/->http://git.Eclipse.org/c/oomph/org.Eclipse.oomph.git/plain/setups/ -jar C:\Users\tk\

そして

C:\Users\tk>for /f "tokens=1" %i in ('jps -m ^| find "MessagingMain"') do ( taskkill /F /PID %i )

C:\Users\tk>(taskkill /F /PID 15176  )
SUCCESS: The process with PID 15176 has been terminated.

または

C:\Users\tk>taskkill /F /PID 15176 
SUCCESS: The process with PID 15176 has been terminated.
1
tk_
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列目にあります)

1
vneste

taskkill /f /im Java.exeのようなものを示唆する答えはおそらく機能しますが、すべてを削除するのではなく1つだけJava processwindow titlesの助けを借りて。

開始

start "MyProgram" "C:/Program Files/Java/jre1.8.0_201/bin/Java.exe" -jar MyProgram.jar

やめる

taskkill /F /FI "WINDOWTITLE eq MyProgram" /T

0
FloPinguin

すべてのJavaプロセスではなく、特定のjarを実行しています。複数のjarでも機能します。

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

その他taskkill /im Java.exeは、すべてのJavaプロセスを強制終了します。

0

PowerShellでこれを行うことができます。

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

taskkillコマンドは、アプリケーションを正常に閉じます。

0

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

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

0
ffoooo

(サービスなしのWindows OS)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