JDKには、JREに配備されているアプリケーションの問題を監視、モニター、プロファイル、デバッグ、および診断するカスタム・ツールを開発するための広範なAPIが含まれています。新しいツールの開発はこのドキュメントの対象外です。かわりにこのセクションでは、使用可能なAPIの概要を簡単に説明します。
この項に示されたすべてのパッケージは、Java SE API仕様で説明されています。
JDKダウンロードに含まれるコード例やデモコードも参照してください。
次の項では、トラブルシューティングのためのカスタム診断ツールとして使用できるパッケージ、インタフェース・クラスおよびJavaデバッガについて説明します。
Java Platform Debugger Architecture (JPDA)は、デバッガやデバッガに似たツールが使用するために設計されたアーキテクチャです。これは、2つのプログラミング・インタフェースと1つのワイヤー・プロトコルから構成されています。
Java Virtual Machine Tool Interface (JVM TI)は、仮想マシンへのインタフェースです(「JVM Tool Interface」を参照)。
Java Debug Interface (JDI)は、ユーザー・コード・レベルでの情報および要求を定義します。これは、Javaプログラミング言語アプリケーションをデバッグするためのPure Javaプログラミング言語インタフェースです。JPDAでは、JDIは、デバッガのプロセスから見たデバッグ対象プロセスの仮想マシンのリモート・ビューです。これはフロント・エンドによって実装されます。デバッガに似たアプリケーション(IDE、デバッガ、トレーサ、モニタリング・ツールなど)はクライアントとなります。
Java Debug Wire Protocol (JDWP)は、デバッグされるプロセスと、JDIを実装したデバッガ・フロント・エンドとの間で転送される、情報および要求の形式を定義します。
JDPAの接続および起動の詳細は、Java Platform Debugger Architecture (JDPA)のドキュメントを参照してください。
jdb
ユーティリティは、コマンド行デバッガの例としてJDKに含まれています。jdb
ユーティリティは、JDIを使ってターゲットVMを起動または接続します。jdb
ユーティリティの詳細は、「jdbユーティリティ」を参照してください。
JDIを使用すれば、従来のデバッガ・タイプのツールだけでなく、ポストモーテム診断の際や、ツールが非協力的なプロセス(ハングアップ・プロセスなど)に接続する必要があるシナリオで役に立つツールを開発することもできます。