JavaTM 2 Platform
Standard Ed. 5.0

パッケージ java.lang.instrument

Java プログラミング言語エージェントが JVM 上で実行されているプログラムを計測できるようにするサービスを提供します。

参照先:
          説明

インタフェースの概要
ClassFileTransformer クラスファイルを変換するために、このインタフェースの実装を提供するエージェント。
Instrumentation このクラスは、Java プログラミング言語コードを計測するためのサービスを提供します。
 

クラスの概要
ClassDefinition このクラスは、Instrumentation.redefineClasses メソッドに対するパラメータブロックとして機能します。
 

例外の概要
IllegalClassFormatException 入力パラメータが無効な場合に、ClassFileTransformer.transform の実装によりスローされます。
UnmodifiableClassException 指定されたクラスの 1 つを変更できない場合、Instrumentation.redefineClasses の実装によってスローされます。
 

パッケージ java.lang.instrument の説明

Java プログラミング言語エージェントが JVM 上で実行されているプログラムを計測できるようにするサービスを提供します。インストゥルメンテーションのメカニズムは、メソッドのバイトコードの変更です。

パッケージの仕様

JVM の起動時に「エージェントクラス」とその「エージェントオプション」を指定して、エージェントを起動します。

エージェントクラスはは、基本的に main アプリケーションエントリポイントと同様の public static premain メソッドを実装する必要があります。

public static voidpremain(String agentArgs, Instrumentation inst);

JVM が初期化されたあと、各 premain メソッドは、エージェントが指定された順に呼び出されます。次に、実際のアプリケーション main メソッドが呼び出されます。各 premain メソッドは、起動シーケンスが実行される順に返されなければなりません。エージェントクラスは、アプリケーション main メソッドを含むクラスをロードするのと同じクラスローダでロードされます。premain メソッドは、アプリケーション main メソッドと同じセキュリティ規則とクラスローダ規則の下で実行されます。エージェント premain メソッドの実行内容に関するモデリング制約はありません。生成スレッドを含め、アプリケーション main が実行できることは、すべて premain で有効です。

各エージェントは、agentArgs パラメータを介してエージェントオプションを渡します。エージェントオプションは単一文字列として渡され、追加の解析はエージェント自身により行われます。

エージェントを解決できない (たとえば、エージェントクラスをロードできない、あるいはエージェントクラスが適合した premain メソッドを持たないなどの理由により) 場合、JVM は中断されます。premain メソッドがキャッチされない例外をスローした場合、JVM は中断されます。

コマンドラインインタフェース

関連ドキュメント

ツールのマニュアルについては、次を参照してください。

導入されたバージョン:
JDK1.5

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。