モジュール java.rmi
パッケージ java.rmi.server

クラスRMIClassLoader

java.lang.Object
java.rmi.server.RMIClassLoader

public class RMIClassLoader extends Object
RMIClassLoaderは、RMIを使用して動的にクラスをロードするためのstaticメソッドから構成されます。 このクラス・ローダーには、ネットワークの場所(1つ以上のURL)からクラスをロードするメソッドや、既存のクラスが格納されている場所を取得するメソッドが組み込まれています。 これらのメソッドは、リモート・メソッド呼出しの引数や戻り値に含まれるクラスを整列化および非整列化するときに、RMIランタイムによって使用されます。また、これらのメソッドをアプリケーションから直接呼び出して、クラスを動的にロードすることもできます。

次のstaticメソッドの実装は、

これらのサービス・プロバイダ・インタフェースRMIClassLoaderSpiのインスタンスによって提供されます。 このメソッドのいずれかが呼び出されると、その動作がサービス・プロバイダ・インスタンスの対応するメソッドに委譲されます。 各メソッドがプロバイダ・インスタンスに委譲する方法の詳細は、各メソッドのマニュアルを参照してください。

サービス・プロバイダ・インスタンスは次のように選択されます。

  • システム・プロパティjava.rmi.server.RMIClassLoaderSpiが定義されている場合、その値が文字列"default"と等しいと、プロバイダ・インスタンスはgetDefaultProviderInstance()メソッドの起動によって返される値になり、その他の値の場合は、プロパティの値で指定されたクラスをシステム・クラス・ローダー(ClassLoader.getSystemClassLoader()を参照してください)でロードでき、そのクラスがRMIClassLoaderSpiに割り当てられ、パブリック引数なしコンストラクタを持つと、そのコンストラクタが起動されてプロバイダ・インスタンスが作成されます。 このシステム・プロパティが定義されている場合でも、これらの条件が満たされていない場合は、RMIClassLoaderの使用を試みるコードに対して、プロバイダ・インスタンスの取得に失敗したことを示す、特定できないErrorがスローされます。
  • META-INF/services/java.rmi.server.RMIClassLoaderSpiというリソースがシステム・クラス・ローダーから見える場合、そのリソースの内容はプロバイダ構成ファイルとして解釈され、そのファイルの最初に指定されているクラス名がプロバイダ・クラス名として使用されます。 システム・クラス・ローダーがその名前を持つクラスをロードでき、そのクラスをRMIClassLoaderSpiに割り当てることができ、引数のないpublicコンストラクタを持つ場合は、プロバイダ・インスタンス作成時にそのコンストラクタが呼び出されます。 そのリソースが見つかっても、記述されているようにプロバイダをインスタンス化できない場合は、RMIClassLoaderの使用を試みるコードに対して、プロバイダ・インスタンスの取得に失敗したことを示す、不明なErrorがスローされます。
  • それ以外の場合は、getDefaultProviderInstance()メソッド呼出しの戻り値に指定されているプロバイダ・インスタンスが選択されます。

導入されたバージョン:
1.1
関連項目: