jps [ options ] [ hostid ]
options
hostid
jps ツールは、ターゲットシステム上で計測された HotSpot Java 仮想マシン (JVM) を一覧表示します。このツールで表示できるレポート情報は、アクセス権を持った JVM に関するものに限定されます。
hostid を指定せずに jps を実行した場合、ローカルホストで計測された JVM が検索されます。hostid を指定して起動した場合、指定されたプロトコルとポートを使用して、指定されたホスト上の JVM を検索します。jstatd プロセスがターゲットホスト上で実行されていると想定されます。
jps コマンドは、ターゲットシステムで計測された各 JVM について、ローカル VM 識別子、つまり lvmid をレポートします。lvmid は、一般的には JVM プロセスに対するオペレーティングシステムのプロセス識別子ですが、必ずしもそうであるとは限りません。オプションを指定しない場合、jps によって、各 Java アプリケーションの lvmid が一覧表示され、それぞれにアプリケーションのクラス名または JAR ファイル名が簡単な形式で示されます。この簡単な形式のクラス名と JAR ファイル名では、クラスのパッケージ情報または JAR ファイルパス情報が省略されています。
jps コマンドは、Java 起動ツールを使用して、main
メソッドに渡されるクラス名と引数を検索します。独自の起動ツールを使用してターゲット JVM を起動した場合は、main
メソッドに渡されるクラス名 (または JAR ファイル名) と引数は利用できません。この場合、jps コマンドは、main メソッドへ渡されるクラス名 (または JAR ファイル名) と引数に対して、文字列 Unknown を出力します。
jps コマンドで生成される JVM のリストは、このコマンドを実行するプリンシパルに与えられたアクセス権に基づき、制限される場合があります。このコマンドは、オペレーティングシステム独自のアクセス制御メカニズムによる決定に基づいて、主体にアクセス権が与えられている JVM だけを一覧表示します。
注:このユーティリティーはサポート対象外であり、将来の JDK のバージョンでは利用できなくなる可能性があります。現在、Windows 98 および Windows Me プラットフォームでは使用できません。
jps コマンドでは、コマンドの出力を変更するオプションが多数サポートされています。将来、これらのオプションは、変更または廃止される可能性があります。
main
メソッドに渡されるクラス名、JAR ファイル名、および引数の出力を制御します。ホスト識別子、つまり hostid は、ターゲットシステムを示す文字列です。hostid 文字列の構文の大部分は、URI の構文に対応しています。
[protocol:][[//]hostname][:port][/servername]
protocol
hostname
port
servername
jps コマンドの出力は、次のパターンに従います。
lvmid [ [ classname | JARfilename | "Unknown"] [ arg* ] [ jvmarg* ] ]
すべての出力トークンは空白で区切ります。arg の中で空白を使用すると、実際の定位置パラメータに引数をマッピングしようとするときに、あいまいになります。
注:将来のリリースでこの形式は変更される可能性があるため、jps 出力を解析するスクリプトは作成しないことをお勧めします。jps 出力を解析するスクリプトを作成する場合は、このツールの将来のリリースで、そのスクリプトを変更しなければならないことに留意してください。
このセクションでは、jps コマンドの例を示します。
ローカルホスト上で計測された JVM を一覧表示する場合:
jps
18027 Java2Demo.JAR
18032 jps
18005 jstat
リモートホスト上で計測された JVM を一覧表示する場合:
この例では、jstat サーバーと、その内部 RMI レジストリまたは別の外部 rmiregistry プロセスのいずれかが、リモートホストのデフォルトポート (ポート 1099) で実行されていると想定しています。また、ローカルホストが、リモートホストへの有効なアクセス権を持っていることも想定しています。この例には、-l オプションも含まれ、クラス名または JAR ファイル名を詳細な形式で出力します。
jps -l remote.domain
3002 /opt/jdk1.7.0/demo/jfc/Java2D/Java2Demo.JAR
2857 sun.tools.jstatd.jstatd
RMI レジストリにデフォルトではないポートを使用して、リモートホスト上で計測された JVM を一覧表示する場合:
この例では、内部 RMI レジストリがポート 2002 にバインドされた jstatd サーバーが、リモートホスト上で実行していると想定しています。また、-m オプションを使用して、一覧表示されたそれぞれの Java アプリケーションの main メソッドに渡される引数を組み込んでいます。
jps -m remote.domain:2002
3002 /opt/jdk1.7.0/demo/jfc/Java2D/Java2Demo.JAR
3102 sun.tools.jstatd.jstatd -p 2002