Java仮想マシンツールの仮想マシンプロセス状況ツールjps

11735 ワード

jps(JVM Process Status Tool)は、linuxのpsコマンドに似ています.このコマンドで、実行クラスの名前と、これらのプロセスがローカル仮想マシンで対応する一意のID(Local Virtual Machine Identifier,LVMID)を表示できます.
ローカル仮想マシンの場合、LVMIDとPIDは一致します.
このツールは簡単ですが、頻繁に使用されています.このツールは多くの場合、他のツールを使用する前提です.くだらないことは言わないで、直接例を見てください.
kevin@kevin-HP-Compaq-Pro-4300-AiO-20-PC-APJ-CTO:~$ jps
7369 Launcher
21773 Jps
2815 Main

何のパラメータもない場合、1列目にLVMID、2列目に実行クラスの名前が表示され、何も実行していない場合はJpsに対応するidのみが表示されます.
実は大部分の情況の下で、上のは大部分の応用シーンに対応するのに十分で、もちろんjpsもこのように簡単ではありませんて、正確に言えば、jpsのコマンドフォーマットはこのようにです:
jps [ options ] [ hostid ]

まずoption部分を見てみましょう
-qパラメータはidを表示する以外は表示しないという意味です.
kevin@kevin-HP-Compaq-Pro-4300-AiO-20-PC-APJ-CTO:~$ jps -q
7369
21789
2815

-mパラメータはメインメソッドを表示する入力パラメータであり,埋め込まれたJVMに対してnullである可能性がある.
kevin@kevin-HP-Compaq-Pro-4300-AiO-20-PC-APJ-CTO:~$ jps -m
7369 Launcher /usr/idea-IU/lib/jps-builders.jar:/usr/idea-IU/lib/picocontainer.jar:/usr/idea-IU/lib/netty-all-4.1.0.Beta8.jar:/usr/idea-IU/lib/rt/jps-plugin-system.jar:/usr/idea-IU/lib/jna.jar:/usr/idea-IU/lib/jps-model.jar:/usr/idea-IU/lib/annotations.jar:/usr/idea-IU/lib/log4j.jar:/usr/idea-IU/lib/jsr166e.jar:/usr/idea-IU/lib/protobuf-2.5.0.jar:/usr/idea-IU/lib/asm-all.jar:/usr/idea-IU/lib/javac2.jar:/usr/idea-IU/lib/oromatcher.jar:/usr/idea-IU/lib/util.jar:/usr/idea-IU/lib/trove4j.jar:/usr/idea-IU/lib/snappy-in-java-0.3.1.jar:/usr/idea-IU/lib/nanoxml-2.2.3.jar:/usr/idea-IU/lib/idea_rt.jar:/usr/idea-IU/lib/jna-platform.jar:/usr/idea-IU/lib/openapi.jar:/usr/idea-IU/lib/jgoodies-forms.jar:/usr/idea-IU/lib/jdom.jar:/usr/idea-IU/lib/resources_en.jar::/usr/idea-IU/plugins/gradle/lib/guava-jdk5-17.0.jar:/usr/idea-IU/plugins/gradle/lib/gradle-jps-plugin.jar:/usr/idea-IU/plugins/gradle/lib/gradle-wrapper-2.5.jar:/usr/idea-IU/plugins/gradle/lib/reflectasm-1.07.jar:/usr/idea-IU/plugins/gradle/lib
21804 Jps -m
2815 Main

見ましたか.入力コマンドには-mパラメータがあり、入力結果は-mを示しています.
-lは、プライマリメソッドの完全なパッケージ名を表示します.
kevin@kevin-HP-Compaq-Pro-4300-AiO-20-PC-APJ-CTO:~$ jps -l
21832 sun.tools.jps.Jps
7369 org.jetbrains.jps.cmdline.Launcher
2815 com.intellij.idea.Main

-v JVMに渡されるパラメータを表示
kevin@kevin-HP-Compaq-Pro-4300-AiO-20-PC-APJ-CTO:~$ jps -v
21848 Jps -Denv.class.path=.:/usr/java/jdk1.8.0_101/lib/dt.jar:/usr/java/jdk1.8.0_101/lib/tools.jar -Dapplication.home=/usr/java/jdk1.8.0_101 -Xms8m
7369 Launcher -Xmx700m -Djava.awt.headless=true -Djava.endorsed.dirs="" -Djdt.compiler.useSingleThread=true -Dpreload.project.path=/home/kevin/IdeaProjects/DynamicProxyDemo -Dpreload.config.path=/home/kevin/.IntelliJIdea15/config/options -Dcompile.parallel=false -Drebuild.on.dependency.change=true -Djava.net.preferIPv4Stack=true -Dio.netty.initialSeedUniquifier=388561894858164884 -Dfile.encoding=UTF-8 -Djps.file.types.component.name=FileTypeManager -Duser.language=en -Duser.country=US -Didea.paths.selector=IntelliJIdea15 -Didea.home.path=/usr/idea-IU -Didea.config.path=/home/kevin/.IntelliJIdea15/config -Didea.plugins.path=/home/kevin/.IntelliJIdea15/config/plugins -Djps.log.dir=/home/kevin/.IntelliJIdea15/system/log/build-log -Djava.io.tmpdir=/home/kevin/.IntelliJIdea15/system/compile-server/_temp_ -Dkotlin.daemon.enabled -Dkotlin.daemon.client.alive.path="/home/kevin/.IntelliJIdea15/system/tmp/kotlin-idea-758921108511928428-is-running"
2815 Main -Xbootclasspath/a:./../lib/boot.jar -Xms128m -Xmx750m -XX:MaxPermSize=350m -XX:ReservedCodeCacheSize=240m -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -ea -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -Dawt.useSystemAAFontSettings=lcd -Djb.vmOptionsFile=./idea64.vmoptions -XX:ErrorFile=/home/kevin/java_error_in_IDEA_%p.log -Djb.restart.code=88 -Didea.paths.selector=IntelliJIdea15

-V感覚効果は-qとあまり差がなく、local JVM identifiersのみが表示されます.他にも主メソッドに伝わるパラメータとか、クラス名とか、JARパッケージ名とかは表示されません.
kevin@kevin-HP-Compaq-Pro-4300-AiO-20-PC-APJ-CTO:~$ jps -V
21863 Jps
7369 Launcher
2815 Main

もう1つのパラメータは、JVMに渡すオプションです.たとえば、
kevin@kevin-HP-Compaq-Pro-4300-AiO-20-PC-APJ-CTO:~$ jps -J-Xms48m

このコマンドは、起動メモリサイズを48 MBに設定することを意味します.
本稿では主にこれらのパラメータの使い方と使用効果について説明し,[hostid](HOST IDENTIFIER)については後述する.