jps - Java 仮想マシンプロセスステータスツール

形式

jps [ options ] [ hostid ]
options
コマンド行オプション
hostid
プロセスレポートを生成するホストのホスト識別子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 コマンドでは、コマンドの出力を変更するオプションが多数サポートされています。将来、これらのオプションは、変更または廃止される可能性があります。

-q
ローカル VM 識別子のリストだけを生成するように、main メソッドに渡されるクラス名、JAR ファイル名、および引数の出力を制御します。
-m
main メソッドに渡される引数を出力します。この出力は、組み込まれている JVM に対して null になることもあります。
-l
アプリケーションの主要なクラスのフルパッケージ名、またはアプリケーションの JAR ファイルへのフルパス名を出力します。
-v
JVM に渡される引数を出力します。
-V
フラグファイル (.hotspotrc ファイルまたは -XX:Flags=<filename> の引数で指定されたファイル) を通じて JVM に渡される引数を出力します。
-Joption
javac が呼び出す java 起動ツールに、option を渡します。たとえば、-J-Xms48m と指定すると、スタートアップメモリは 48M バイトに設定されます。-J を使って、Java で記述されたアプリケーションを実行する背後の VM にオプションを渡すことは、よく行われています。

ホスト識別子

ホスト識別子、つまり hostid は、ターゲットシステムを示す文字列です。hostid 文字列の構文の大部分は、URI の構文に対応しています。

[protocol:][[//]hostname][:port][/servername]
protocol
通信プロトコルです。protocol が省略され、hostname が指定されていない場合、デフォルトのプロトコルが、プラットフォーム固有の最適化されたローカルプロトコルになります。protocol が省略され、hostname が指定されている場合は、デフォルトプロトコルは rmi になります。
hostname
ターゲットホストを示すホスト名または IP アドレスです。hostname が省略されている場合は、ターゲットホストはローカルホストになります。
port
リモートサーバと通信するためのデフォルトポートです。hostname が省略されているか、protocol で最適化されたローカルプロトコルが指定されている場合、port は無視されます。そうでなければ、port パラメータの扱いは、実装によって異なります。デフォルトの rmi プロトコルの場合、port は、リモートホスト上の rmiregistry のポート番号を示します。port が省略され、protocolrmi が指定されている場合、デフォルトの rmiregistry ポート (1099) が使用されます。
servername
このパラメータの扱いは、実装によって異なります。最適化されたローカルプロトコルの場合、このフィールドは無視されます。rmi プロトコルの場合、このパラメータは、リモートホスト上の RMI リモートオブジェクトの名前を示す文字列になります。jstatd コマンドについては、-n オプションを参照してください。

出力形式

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/j2sdk1.5.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/j2sdk1.5.0/demo/jfc/Java2D/Java2Demo.JAR
3102 sun.tools.jstatd.jstatd -p 2002

関連項目


Copyright © 2003 Sun Microsystems, Inc.All Rights Reserved.

Sun
Java ソフトウェア