jps 프로세스는 JVM 프로세스입니까?

jps 프로세스는 JVM 프로세스입니까?

우분투에서는 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.JpsJava 클래스는 tools.jar내부에서 들어갑니다. 이런 방식으로 시작된 JVM은 자체 hsperfdata 파일을 작성하므로 Jps이 클래스가 자체 출력에 표시됩니다. 위와 동일한 옵션을 JVM에 전달하여 끌 수 있습니다.-J변화:

$ jps
12583 Jps
$ jps -J-XX:-UsePerfData
$

답변2

예, jpsJava 애플리케이션입니다.

~에서오라클 블로그:

그건

jps

이것이 바로 명령이 유용한 곳입니다. 사용 중인 JDK 설치 디렉터리에 대해 시작된 모든 가상 머신의 프로세스 ID가 나열됩니다. 출력, 특히 프로세스 ID는 다양할 수 있습니다.

> jps
5156 Jps
4276 MyFrame

~부터

jps

명령 자체는 목록에도 나타나는 Java 프로그램입니다.

관련 정보