jps 사용법

내 이 세상 도처에서 쉴 곳을 찾아보았으나, 마침내 찾아낸, 컴퓨터가 있는 구석방보다 나은 곳은 없더라.

jps 사용법

자바로 개발할 때 보통 javajavac만 사용하지만, JDK에는 이 이외에도 많은 도구가 포함되어 있다. 그 중 하나인 jps를 살펴보자.

jps는 JVM 프로세스 상태를 보는 도구로 UNIX의 ps와 비슷하다. ps는 운영체계의 모든 프로세스 상태를 보여주지만 jps는 JVM 프로세스만 보여준다는 차이가 있다. jps 실행 시 목표 시스템(target system)을 지정하면 원격 시스템의 JVM 프로세스 상태도 확인할 수 있다.

사용법

$ jps [options] [hostid]

옵션

  • -q 클래스 이름, JAR 파일 이름, main 메서드에 전달된 인자를 모두 생략하고 JVM 아이디(보통 OS 프로세스 아이디와 동일. 반드시 그럴 필요는 없음)만 표시한다.
  • -m main 메서드에 전달된 인자를 표시한다.
  • -l 애플리케이션 main 클래스의 전체 패키지 이름 또는 JAR 파일의 전체 경로를 표시한다.
  • -v JVM에 전달된 인자를 표시한다.
  • -V 클래스 이름, JAR 파일 이름, main 메서드에 전달된 인자를 모두 생략한다.

호스트 아이디

목표 시스템을 지정하는 문자열로 다음과 같은 형식이다.

[protocol:][[//]hostname][:port][/servername]
  • protocol 통신 프로토콜. protocolhostname이 함께 생략된 경우에는 로컬 프로토콜. protocol은 생략했지만 hostname이 지정된 경우에는 디폴트로 rmi 프로토콜이 사용됨.
  • hostname 호스트 이름 또는 IP 주소. 생략하면 localhost가 사용됨.
  • port 원격 서버와 통신할 포트. port가 생략되고 protocolrmi인 경우 1099가 사용됨.
  • servername 로컬 프로토콜인 경우에는 무시됨. rmi 프로토콜인 경우에는 RMI 원격 객체의 이름.

사용 예

$ jps -l
6176 clojure.main
6514 sun.tools.jps.Jps
6179 clojure.main

$ jps -m
6176 main -m leiningen.core.main repl
6179 main -i /private/var/folders/sl/j6.../T/form-init143...99.clj
6521 Jps -m

참고