How to Kill Java Process in Windows
DISABLE ADBLOCK
ADBlock is blocking some content on the site
- windows - java - cmd - batch-file |
- |
- ( words)
Question
I am a newbie in cmd, so please allow me to ask a stupid question: How can we stop a running Java process through Windows cmd?
For example, if we start Jetty (a mini web server) with the following command:
start javaw -jar start.jar How do we find the process and stop it later?
Obviously the following command does not work:
stop javaw -jar start.jar Solution
It is rather messy but you need to do something like the following:
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% Found this on this page.
(This kind of thing is much easier if you have a UNIX / LINUX system ... or if you run Cygwin or similar on Windows.)
OTHER TIPS
When I ran taskkill to stop the javaw.exe process it would say it had terminated but remained running. The jqs process (java qucikstart) needs to be stopped also. Running this batch file took care of the issue.
taskkill /f /im jqs.exe taskkill /f /im javaw.exe taskkill /f /im java.exe I like this one.
wmic process where "name like '%java%'" delete You can actually kill a process on a remote machine the same way.
wmic /node:computername /user:adminuser /password:password process where "name like '%java%'" delete wmic is awesome!
Normally I don't have that many Java processes open so
taskkill /im javaw.exe or
taskkill /im java.exe should suffice. This will kill all instances of Java, though.
In case you want to kill not all java processes but specif jars running. It will work for multiple jars as well.
wmic Path win32_process Where "CommandLine Like '%YourJarName.jar%'" Call Terminate Else taskkill /im java.exe will work to kill all java processes
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 - replace this to your application's main class (you can find it in second column of jps -l output)
Open the windows cmd. First list all the java processes,
jps -m now get the name and run below command,
for /f "tokens=1" %i in ('jps -m ^| find "Name_of_the_process"') do ( taskkill /F /PID %i ) or simply kill the process ID
taskkill /F /PID <ProcessID> sample :)
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\ and
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. or
C:\Users\tk>taskkill /F /PID 15176 SUCCESS: The process with PID 15176 has been terminated. start javaw -DSTOP.PORT=8079 -DSTOP.KEY=secret -jar start.jar
start javaw -DSTOP.PORT=8079 -DSTOP.KEY=secret -jar start.jar --stop
You can do this with PowerShell:
$process = Start-Process "javaw" "-jar start.jar" -PassThru taskkill /pid $process.Id The taskkill command will graceful close the application.
(on Windows OS without Service) Spring Boot start/stop sample.
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 The answer which suggests something like taskkill /f /im java.exe will probably work, but if you want to kill only one java process instead of all, I can suggest doing it with the help of window titles. Expample:
Start
start "MyProgram" "C:/Program Files/Java/jre1.8.0_201/bin/java.exe" -jar MyProgram.jar
Stop
taskkill /F /FI "WINDOWTITLE eq MyProgram" /T
How to Kill Java Process in Windows
Source: https://www.generacodice.com/en/articolo/664208/How-can-we-stop-a-running-java-process-through-Windows-cmd
0 Response to "How to Kill Java Process in Windows"
Post a Comment