우분투에서는 man jps
이렇게 말해보세요
jps - 대상 시스템에 계측된 JVM(Java Virtual Machine)을 나열합니다.
"계측화된 Java 가상 머신"이란 무엇을 의미합니까?
$ jps -v
29584 Jps -Dapplication.home=/usr/lib/jvm/java-11-openjdk-amd64 -Xms8m -Djdk.module.main=jdk.jcmd
정의에 따르면 jps 프로세스는 JVM 프로세스입니까?
jps는 Java 프로그램에서 컴파일된 JVM 바이트코드 프로그램이 아닌 ELF 파일입니다.
$ file /usr/lib/jvm/java-11-openjdk-amd64/bin/jps
/usr/lib/jvm/java-11-openjdk-amd64/bin/jps: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/l, for GNU/Linux 3.2.0, BuildID[sha1]=3f48c70ab711b493ee793c92c19b3a884896bb4d, stripped
감사해요.
답변1
"계측화된 Java 가상 머신"이란 무엇을 의미합니까?
Linux에서 계측된 Java 가상 머신은 -XX:+UsePerfData
이 옵션으로 시작되는 가상 머신입니다. 기본적으로 활성화되어 있습니다.
이는 성능 및 기타 정보를 /tmp/hsperfdata_$USER/$PID
도구가 읽을 파일 에 저장합니다 jps(1)
.
계측 되지 않은 JVM을 시작하려면 이를 java -XX:-UsePerfData YourClass
.jps
정의에 따르면 jps 프로세스는 JVM 프로세스입니까?
예
jps는 Java 프로그램에서 컴파일된 JVM 바이트코드 프로그램이 아닌 ELF 파일입니다.
jps
딱 하나만발사통, 그러면 JVM이 시작되고 로드됩니다.sun.tools.jps.Jps
Java 클래스는 tools.jar
내부에서 들어갑니다. 이런 방식으로 시작된 JVM은 자체 hsperfdata 파일을 작성하므로 Jps
이 클래스가 자체 출력에 표시됩니다. 위와 동일한 옵션을 JVM에 전달하여 끌 수 있습니다.-J
변화:
$ jps
12583 Jps
$ jps -J-XX:-UsePerfData
$
답변2
예, jps
Java 애플리케이션입니다.
~에서오라클 블로그:
그건
jps
이것이 바로 명령이 유용한 곳입니다. 사용 중인 JDK 설치 디렉터리에 대해 시작된 모든 가상 머신의 프로세스 ID가 나열됩니다. 출력, 특히 프로세스 ID는 다양할 수 있습니다.
> jps 5156 Jps 4276 MyFrame
~부터
jps
명령 자체는 목록에도 나타나는 Java 프로그램입니다.