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 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アプリケーションです。
~からOracleブログ:
それは
jps
これがコマンドが役に立つ場所です。使用しているJDKインストールディレクトリ用に起動されたすべての仮想マシンのプロセスIDが一覧表示されます。出力、特にプロセス ID はさまざまです。
> jps 5156 Jps 4276 MyFrame
~から
jps
コマンド自体はリストにも表示されるJavaプログラムです。