クラスAttachProvider

java.lang.Object
com.sun.tools.attach.spi.AttachProvider

public abstract class AttachProvider extends Object
Java仮想マシンに接続するための接続プロバイダ・クラスです。

接続プロバイダは、ゼロ引数コンストラクタを持ち、次の抽象メソッドを実装する、このクラスの具象サブクラスです。

接続プロバイダの実装は、通常、Java仮想マシンの実装、バージョン、または操作のモードにも関係しています。 つまり、特定のプロバイダ実装は、通常、特定のJava仮想マシンの実装またはバージョンにしか接続できません。 たとえば、Oracle JDK実装には、Oracle HotSpot仮想マシンにのみアタッチできるプロバイダ実装が同梱されています。 通常、さまざまなバージョンのさまざまなベンダー製のJava仮想マシンで環境が構成される場合は、実装またはバージョンのファミリごとに接続プロバイダ実装が存在します。

接続プロバイダは、そのnametypeによって識別されます。 名前は、通常はVMベンダーに対応する名前ですが、必ずしもそうである必要はありません。 たとえば、Oracle JDKの実装には、パッケージ名"日" (履歴上の理由)を使用するアタッチ・プロバイダが同梱されています。 タイプは、通常は接続メカニズムに対応します。 たとえば、Doorsプロセス間通信メカニズムを使用する実装は、「doors」というタイプを使用する場合があります。 名前とタイプの目的は、複数のプロバイダがインストールされている環境でプロバイダを識別することです。

AttachProvider実装は、providersメソッドの最初の呼出し時にロードされ、そのインスタンスが生成されます。 このメソッドは、プラットフォーム上にインストールされているすべてのプロバイダ実装をロードしようとします。

このクラス内のすべてのメソッドは、複数の並行スレッドで安全に使用できます。

導入されたバージョン:
1.6
  • コンストラクタのサマリー

    コンストラクタ
    修飾子
    コンストラクタ
    説明
    protected
    このクラスの新しいインスタンスを初期化します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    Java仮想マシンに接続します。
    Java仮想マシンに接続します。
    このプロバイダで認識されているJava仮想マシンのリストを表示します。
    abstract String
    このプロバイダの名前を返します。
    インストールされている接続プロバイダのリストを返します。
    abstract String
    このプロバイダのタイプを返します。

    クラスオブジェクトで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • コンストラクタの詳細

    • AttachProvider

      protected AttachProvider()
      このクラスの新しいインスタンスを初期化します。
  • メソッドの詳細

    • name

      public abstract String name()
      このプロバイダの名前を返します。
      戻り値:
      このプロバイダの名前
    • type

      public abstract String type()
      このプロバイダのタイプを返します。
      戻り値:
      このプロバイダのタイプ
    • attachVirtualMachine

      public abstract VirtualMachine attachVirtualMachine(String id) throws AttachNotSupportedException, IOException
      Java仮想マシンに接続します。

      Java仮想マシンは抽象識別子によって識別されます。 この識別子の特性はプラットフォームによって異なりますが、多くの場合、プロセス識別子(pid)の文字列表現になります。

      このメソッドは、識別子を解析し、その識別子をJava仮想マシンにマッピングします。方法は実装によって異なります。 プロバイダが識別子を解析できない場合は、AttachNotSupportedExceptionがスローされます。 解析後、このメソッドがJava仮想マシンへの接続を試みます。 プロバイダが、存在しないJava仮想マシンに対する識別子であること、またはこのプロバイダによって実装された接続メカニズムをサポートしないJava仮想マシンに対する識別子であることを検出した場合、あるいは、Java仮想マシンがこのプロバイダでは接続できないバージョンであることを検出した場合は、AttachNotSupportedExceptionがスローされます。

      パラメータ:
      id - Java仮想マシンを識別する抽象識別子。
      戻り値:
      ターゲット仮想マシンを表すVirtualMachine。
      スロー:
      AttachNotSupportedException - 識別子を解析できない場合、または存在しないJava仮想マシンに対する識別子である場合、またはそのプロバイダでは接続できないJava仮想マシンに対する識別子である場合。
      IOException - その他の入出力エラーが発生した場合
      NullPointerException - idnullである場合
    • attachVirtualMachine

      Java仮想マシンに接続します。

      Java仮想マシンは、VirtualMachineDescriptorを使用して記述できます。 このメソッドは、記述子のprovider()メソッドを呼び出して、このプロバイダと等しいかどうかをチェックします。 そのあと、Java仮想マシンへの接続を試みます。

      パラメータ:
      vmd - 仮想マシン記述子
      戻り値:
      ターゲット仮想マシンを表すVirtualMachine。
      スロー:
      AttachNotSupportedException - 記述子のprovider()メソッドがこのプロバイダではないプロバイダを返す場合、またはこのプロバイダで接続できるJava仮想マシンに対応しない場合。
      IOException - その他の入出力エラーが発生した場合
      NullPointerException - vmdnullである場合
    • listVirtualMachines

      public abstract List<VirtualMachineDescriptor> listVirtualMachines()
      このプロバイダで認識されているJava仮想マシンのリストを表示します。

      このメソッドは、VirtualMachineDescriptor要素のリストを返します。 VirtualMachineDescriptorは、このプロバイダが接続できる可能性がある Java仮想マシンを表します。 リスト内の各記述子のattachVirtualMachineの呼出しが成功するという保証はありません。

      戻り値:
      このプロバイダで認識されているJava仮想マシンを記述する、仮想マシン記述子のリスト。空の場合もある
    • providers

      public static List<AttachProvider> providers()
      インストールされている接続プロバイダのリストを返します。

      AttachProviderは、次のような場合はプラットフォームにインストールされています。

      • AttachProviderタイプの定義に用いるクラス・ローダー(通常はsystem class loaderだが、これである必要はない)で表示するJARファイルにインストールされている場合。
      • JARファイルには、リソース・ディレクトリMETA-INF/servicescom.sun.tools.attach.spi.AttachProviderという名前のプロバイダ構成が含まれています。
      • プロバイダ構成ファイルに、AttachProvider実装の完全指定クラス名のリストがある場合。

      プロバイダ構成ファイルの形式は、行ごとに1つの完全指定クラス名が示された形式です。 各クラス名を囲む空白文字とタブ文字ばかりでなく空白行も無視されます。 コメント文字は'#' (0x23)で、各行で最初のコメント文字に続くすべての文字は無視されます。 ファイルはUTF-8で符号化されている必要があります。

      AttachProvider実装は、このメソッドの最初の呼出し時にロードされ、引数なしのコンストラクタを使用してインスタンスが生成されます。 このメソッドの最初の呼出しによって返されるリストは、プロバイダのリストです。 このメソッドの後続呼出し時には、その同じプロバイダのリストが返されます。 リストは変更できません。

      戻り値:
      インストールされている接続プロバイダのリスト。