jpsプロセスはJVMプロセスですか?

jpsプロセスはJVMプロセスですか?

Ubuntuではman jps

jps - ターゲットシステムにインスツルメントされたJava Virtual Machine(JVM)を一覧表示します。

「計測された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 YourClassjps

定義によると、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アプリケーションです。

~からOracleブログ:

それは

jps

これがコマンドが役に立つ場所です。使用しているJDKインストールディレクトリ用に起動されたすべての仮想マシンのプロセスIDが一覧表示されます。出力、特にプロセス ID はさまざまです。

> jps
5156 Jps
4276 MyFrame

~から

jps

コマンド自体はリストにも表示されるJavaプログラムです。

関連情報