taskkill -jar

상황

  • java -jar로 runable jar을 실행할 수 있다
  • 그런데 이 jar을 cmd로 종료할 수 없을까?
  • 보통의 프로그램이라면 taskkill /F /IM프로세스 이름을 통해 종료할 수 있다
  • 근데 java -jar 실행한 앱의 경우, 프로세스명이 java.exe, javaw.exe 정도이다

해결

  • jps 명령으로 .jar 파일 이름을 통해 PID를 얻을 수 있다
  • jps는 jdk가 설치되어있고 환경 변수만 잘 설정되어있다면 그냥 동작한다
example.bat
1
2
rem example
for /f "tokens=1" %i in ('jps -m ^| find "myApp"') do ( taskkill /F /PID %i )
  • find “myApp” 부분에 jar 파일 명을 적으면 된다
  • jar 파일명을 완전히 적지 않아도 된다

참고

cmd로 프로세스 죽이기

cmd
1
2
3
taskkill /IM "process name" /F

taskkill /IM "oCam.exe" /F
  • 나는 주로 정상 종료할 때 광고 뜨는 프로그램을 종료하거나,
  • 한번에 여러 프로그램을 종료하려고 배치파일로 만들어 사용했다
  • 실행해도 안꺼지는 경우, 관리자 권한이 필요할 수도있다