17)JavaScriptがブラウザで無効になっています。Objectクラス・ローダーは、クラスのロードを担当するオブジェクトです。ClassLoaderクラスは抽象クラスです。クラスのバイナリ名を指定すると、クラス・ローダーはクラスの定義を構成するデータを見つけるか生成します。一般的な方法としては、名前をファイル名に変換して、ファイル・システムからその名前の「クラス・ファイル」を読み込みます。すべてのClassオブジェクトには、それを定義したClassLoaderへのreferenceが含まれています。Runtimeの要求に応じて自動的に作成されます。配列クラスのクラス・ローダー(Class.getClassLoader()から返される)は、その要素の型のクラス・ローダーと同じになります。要素の型がプリミティブ型の場合、配列クラスはクラス・ローダーを持ちません。アプリケーションは、Java仮想マシンが動的にクラスをロードするように拡張するために、ClassLoaderのサブクラスを実装します。クラス・ローダーは一般的に、セキュリティ・マネージャがセキュリティ・ドメインを示すために使われます。クラスをロードすることに加えて、クラス・ローダーはリソースの特定も担当します。リソースとは、'/'という抽象パス名で識別されるデータです。リソースは通常、アプリケーションまたはライブラリにパッケージ化されているため、アプリケーションまたはライブラリ内のコードでリソースを見つけることができます。場合によっては、リソースが他のライブラリに配置されるように含まれています。ClassLoaderクラスは、委譲モデルを使ってクラスとリソースを探します。ClassLoaderの各インスタンスは、関連する親クラス・ローダーを持ちます。ClassLoaderインスタンスは、クラスまたはリソースの検索をリクエストされると、そのクラスまたはリソース自体の検索を試みる前に、そのクラスまたはリソースの検索を親クラス・ローダーに委譲します。クラスの同時ロードをサポートするクラス・ローダーは、「並列対応」クラス・ローダーと呼ばれ、ClassLoader.registerAsParallelCapableメソッドを呼び出すことによってクラス初期化時に登録する必要があります。ClassLoaderクラスはデフォルトで並行可能として登録されます。そのサブクラスについては、並行可能な場合には自身を登録する必要があります。委譲モデルが厳密に階層的でない環境では、クラス・ローダーは並列対応が可能でなければなりません。しないと、クラス・ローディング・プロセス(loadClassメソッドを参照してください)中にローダー・ロックが保持されるため、クラス・ローディングによってデッドロックが発生する可能性があります。ランタイム・ビルト・イン・クラス・ローダーJavaランタイムには、次の組み込みクラス・ローダーがあります:ブートストラップ・クラス・ローダー。仮想マシンの組み込みクラス・ローダーで、通常はnullで表され、親はありません。「プラットフォーム・クラス・ローダー」。プラットフォーム・クラス・ローダーは、「プラットフォーム・クラス」のロードを担当します。SEプラットフォームAPI、その実装クラス、およびプラットフォーム・クラス・ローダーまたはその祖先によって定義されたJDK固有の実行時クラスが含まれます。プラットフォーム・クラス・ローダーは、ClassLoaderインスタンスの親として使用できます。プラットフォーム・クラス・ローダーに定義されたモジュールのアップグレード/オーバーライドを可能にするために、アップグレードされたモジュールが定義されたモジュールをプラットフォーム・クラス・ローダーとその祖先以外のクラス・ローダーに読み込む場合、プラットフォーム・クラス・ローダーは他のクラス・ローダーに委譲する必要があります。アプリケーション・クラス・ローダーなどがあります。言い換えれば、プラットフォーム・クラス・ローダーとその祖先以外のクラス・ローダーに定義された名前付きモジュールのクラスは、プラットフォーム・クラス・ローダーに可視である可能性があります。「システム・クラス・ローダー」。「アプリケーション・クラス・ローダー」とも呼ばれ、プラットフォーム・クラス・ローダーとは異なります。システム・クラス・ローダーは、通常、アプリケーション・クラス・パス、モジュール・パス、およびJDK固有のツールでクラスを定義するために使用されます。プラットフォーム・クラス・ローダーはシステム・クラス・ローダーの親または祖先であるため、システム・クラス・ローダーはその親に委任することでプラットフォーム・クラスをロードできます。通常、Java仮想マシンは、プラットフォームに依存しない方法でローカル・ファイル・システムからクラスをロードします。ファイルから作成できないクラスもあります。このようなクラスは、ネットワークなどのほかのソースから作成したり、アプリケーションが構築したりします。メソッドdefineClassは、バイトの配列をクラスClassのインスタンスに変換します。この新たに定義されたクラスのインスタンスは、Class.newInstanceを使用して作成できます。クラス・ローダーで作成したオブジェクトのメソッドとコンストラクタは、ほかのクラスを参照できます。参照されるclass(es)を決定するために、Java仮想マシンは、クラスを最初に作成したクラス・ローダーのloadClassメソッドを呼び出します。アプリケーションはネットワーク・クラス・ローダーを作成して、サーバーからクラス・ファイルをダウンロードできます。コードは次のようになります。.ネットワーク・クラス・ローダー・サブクラスは、ネットワークからクラスをロードするために、メソッドfindClassとloadClassDataを定義する必要があります。クラスを構成するバイトをダウンロードしたら、メソッドdefineClassを使用してクラス・インスタンスを作成する必要があります。実装の例を次に示します。定義されているバイナリ名である必要があります。次に、有効なクラス名の例を示します。定義された完全修飾名でなければなりません。導入されたバージョン:1.0関連項目:resolveClass(Class)コンストラクタのサマリーコンストラクタ修飾子コンストラクタ説明protectedClassLoader()getSystemClassLoader()メソッドによって返されたClassLoaderを親クラス・ローダーとして使用して、新しいクラス・ローダーを作成します。parent)指定された親クラス・ローダーを使って、委譲のために新しいクラス・ローダーを作成します。parent)指定された名前の新しいクラス・ローダーを作成し、指定された親クラス・ローダーを委譲のために使用します。メソッドのサマリーすべてのメソッド静的メソッドインスタンス・メソッド具象メソッド非推奨のメソッド修飾子と型メソッド説明voidclearAssertionStatus()このクラス・ローダーのデフォルトのアサーション・ステータスをfalseに設定し、クラス・ローダーに関連付けられたパッケージ・デフォルトまたはクラスのアサーション・ステータス設定をすべて破棄します。len)バイトの配列をClassクラスのインスタンスに変換します。protectionDomain)指定されたProtectionDomainを使用して、バイトの配列をクラスClassのインスタンスに変換します。protectionDomain)指定されたProtectionDomainを使用して、ByteBufferをクラスClassのインスタンスに変換します。sealBase)このClassLoaderにnameでパッケージを定義します。name)指定されたバイナリ名を持つクラスを探します。name)このクラス・ローダーに定義されたモジュール内の指定された「バイナリ名」を持つクラスを検索します。libname)ネイティブ・ライブラリの絶対パス名を返します。name)このローダーがこのバイナリ名を持つクラスの起動ローダーとしてJava仮想マシンにより記録されていた場合は、指定されたバイナリ名を持つクラスを返します。name)指定された名前を持つリソースを検索します。name)このクラス・ローダーに定義されたモジュール内のリソースへのURLを返します。name)指定された名前を持つすべてのリソースを表すURLオブジェクトの列挙型を返します。name)指定されたバイナリ名を持つクラスを探して、必要に応じてロードします。className)クラス・ロード操作用のロック・オブジェクトを返します。name)このクラス・ローダーによって定義されたnameのPackageを返します。Package[]getDefinedPackages()このクラス・ローダーによって定義されたすべてのPackageを返します。StringgetName()このクラス・ローダーの名前が返されない場合は、このクラス・ローダーの名前またはnullを返します。複数のクラス・ローダーが互いに委譲して同じパッケージ名を持つクラスを定義し、そのようなローダーの1つがgetPackageのルックアップ動作に依存して親ローダーからPackageを返す場合、Packageによって公開されるプロパティは残りのプログラムで期待どおりにならない場合があります。Package[]getPackages()このクラス・ローダーとその祖先によって定義されたすべてのPackageを返します。ClassLoadergetParent()委譲のための親クラス・ローダーを返します。ClassLoadergetPlatformClassLoader()プラットフォーム・クラス・ローダーを返します。name)指定された名前を持つリソースを検索します。name)指定されたリソースを読み込む入力ストリームを返します。name)指定された名前を持つすべてのリソースを検索します。ClassLoadergetSystemClassLoader()システム・クラス・ローダーを返します。name)クラスをロードするために使用される検索パスから、指定された名前のリソースを探します。name)クラスをロードするのに使用される検索パスから、指定された名前のリソースを、読込み用にオープンします。name)クラスをロードするために使用される検索パスから、指定された名前のすべてのリソースを探します。ModulegetUnnamedModule()このクラス・ローダーの名前のないModuleを返します。booleanisRegisteredAsParallelCapable()このクラス・ローダーが「並列対応」、それ以外の場合はfalseとして登録されている場合はtrueを返します。name)指定されたバイナリ名を持つクラスをロードします。resolve)指定されたバイナリ名を持つクラスをロードします。booleanregisterAsParallelCapable()呼び出し元を「並列対応」として登録します。c)指定されたクラスをリンクします。name)要素が指定された名前を持つすべてのリソースのURLであるストリームを返します。enabled)このクラス・ローダーの指定されたトップレベル・クラスおよびそこに含まれるネストされたクラス内に対して、目的のアサーション・ステータスを設定します。enabled)このクラス・ローダーのデフォルトのアサーション・ステータスを設定します。enabled)指定されたパッケージ・デフォルトのアサーション・ステータスを設定します。signers)クラスの署名者を設定します。parent)指定された名前の新しいクラス・ローダーを作成し、指定された親クラス・ローダーを委譲のために使用します。(ブートストラップ・クラス・ローダー用)として指定されている場合、すべてのプラットフォーム・クラスが可視であるという保証はありません。指定された名前が空の場合。セキュリティ・マネージャが存在し、そのSecurityManager.checkCreateClassLoader()メソッドが新しいクラス・ローダーの作成を許可しない場合。parent)指定された親クラス・ローダーを使って、委譲のために新しいクラス・ローダーを作成します。セキュリティ・マネージャが存在する場合、そのcheckCreateClassLoaderメソッドが呼び出されます。これはセキュリティ例外となる場合があります。(ブートストラップ・クラス・ローダー用)として指定されている場合、すべてのプラットフォーム・クラスが可視であるという保証はありません。ClassLoader()getSystemClassLoader()メソッドによって返されたClassLoaderを親クラス・ローダーとして使用して、新しいクラス・ローダーを作成します。セキュリティ・マネージャが存在する場合、そのcheckCreateClassLoaderメソッドが呼び出されます。これはセキュリティ例外となる場合があります。getName()このクラス・ローダーの名前が返されない場合は、このクラス・ローダーの名前またはnullを返します。APIのノート:このメソッドは、互換性のために最終的なものではありません。このメソッドがオーバーライドされている場合、このメソッドは、このクラス・ローダーがインスタンス化されたときに指定されたものと同じ名前を返す必要があります。戻り値:このクラス・ローダーの名前。このクラス・ローダーが指定されていない場合はnull。ClassNotFoundException指定されたバイナリ名を持つクラスをロードします。boolean)メソッドの場合と同じです。Java仮想マシンがこのメソッドを呼び出して、クラス参照を解決します。false)を呼び出すことと同じです。ClassNotFoundException指定されたバイナリ名を持つクラスをロードします。このメソッドのデフォルト実装では、次の順序でクラスを検索します。クラスがすでにロードされていないかチェックするためにfindLoadedClass(String)を呼び出す。親クラス・ローダーでloadClassメソッドを呼び出します。親がnullの場合、代わりに仮想マシンに組み込まれたクラス・ローダーが使用されます。findClass(String)メソッドを呼び出してクラスを探す。上記のステップでクラスが見つかった場合、resolveフラグがtrueのときには、このメソッドは見つかったClassオブジェクトに対してresolveClass(Class)メソッドを呼び出します。ClassLoaderのサブクラスでは、このメソッドではなくfindClass(String)をオーバーライドすることをお薦めします。オーバーライドされていない限り、このメソッドはクラス・ロード処理全体の中でgetClassLoadingLockメソッドの結果と同期します。className)クラス・ロード操作用のロック・オブジェクトを返します。下位互換性のため、このメソッドのデフォルト実装は次のように動作します。このClassLoaderオブジェクトが並行可能として登録されている場合、このメソッドは、指定されたクラス名に関連付けられた専用オブジェクトを返します。それ以外の場合、メソッドはこのClassLoaderオブジェクトを返します。ClassNotFoundException指定されたバイナリ名を持つクラスを探します。このメソッドは、クラスをロードするための委譲モデルに続くクラス・ローダー実装によってオーバーライドされ、リクエストされたクラスの親クラス・ローダーをチェックした後にloadClassメソッドによって呼び出されます。実装要件:デフォルトの実装では、ClassNotFoundExceptionがスローされます。name)このクラス・ローダーに定義されたモジュール内の指定された「バイナリ名」を持つクラスを検索します。モジュールからのロードをサポートするクラス・ローダー実装は、このメソッドをオーバーライドする必要があります。APIのノート:このメソッドは、クラスが見つからない場合はClassNotFoundExceptionをスローするのではなく、nullを返します。実装要件:moduleNameがnullのとき、findClass(String)を呼び出すことによって、デフォルトの実装がクラスを見つけようとします。なければ、nullを返します。戻り値:結果のClassオブジェクト、またはクラスが見つからなかった場合はnullオブジェクト。ClassFormatError非推奨。int)に置き換えられましたバイトの配列をClassクラスのインスタンスに変換します。最初にClassを解決してからでなければ、それを使用することはできません。このメソッドは非推奨です。バイナリ名を最初の引数として取るバージョンの方が安全であるため、そのバージョンを使用するようにしてください。クラス・データを構成するバイト。定義されている有効なクラス・ファイルの形式である必要があります。このクラスとは異なる一連の証明書で署名されたクラスを含むパッケージにこのクラスを追加しようとした場合、または「java.」で始まる完全指定名を持つパッケージ内でクラスを定義しようとした場合。ClassFormatErrorバイトの配列をClassクラスのインスタンスに変換します。最初にClassを解決してからでなければ、それを使用することはできません。このメソッドは、新しく定義されたクラスにデフォルトのProtectionDomainを割り当てます。null))が呼び出されたときに返される同じセットのアクセス権が効果的に与えられます。デフォルトの保護ドメインは、defineClassの最初の呼び出しで作成され、後続の呼び出しで再使用されます。特定のProtectionDomainをクラスに割り当てるには、引数の1つとしてProtectionDomainを取るdefineClassメソッドを使用します。(そのようなパッケージがこのクラス・ローダーでまだ定義されていない場合)のパッケージに対応するこのクラス・ローダー内のパッケージを定義します。定義されたパッケージの名前は、バイト配列bで指定されたクラスの「バイナリ名」から派生します。定義されたパッケージのその他のプロパティは、Packageで指定されたものです。クラスの予想されるバイナリ名。クラス・データを構成するバイト。定義されている有効なクラス・ファイルの形式である必要があります。クラス・データの長さ戻り値:指定されたクラス・データから作成されたClassオブジェクト。このクラス(未署名)とは異なる証明書セットを使って署名されたクラスを含むパッケージに、このクラスを追加しようとした場合、またはnameが「java.」で始まる場合。ClassFormatError指定されたProtectionDomainを使用して、バイトの配列をクラスClassのインスタンスに変換します。int)のドキュメントで指定されているように、デフォルトの保護ドメインがクラスに割り当てられます。最初にクラスを解決してからでなければ、クラスを使用することはできません。パッケージで定義される最初のクラスにより、そのパッケージ内で続いて定義されたすべてのクラスに必要な、証明書の正確なセットが決まります。クラスの証明書セットは、クラスのProtectionDomain内のCodeSourceから取得されます。そのパッケージに追加されたクラスには同一の証明書のセットが含まれている必要があり、含まれていない場合はSecurityExceptionがスローされます。nameがnullの場合、この判別は実行されません。定義するクラスのバイナリ名をバイトとともに渡すようにしてください。このようにして渡すと、定義するクラスは実際に考えたとおりのクラスになります。指定されたnameが"java."で始まる場合は、「プラットフォーム・クラス・ローダー」またはその祖先でのみ定義できます。それ以外の場合はSecurityExceptionがスローされます。nameがnullでない場合は、バイト配列bで指定されたクラスの「バイナリ名」と等しくなければなりません。それ以外の場合はNoClassDefFoundErrorがスローされます。(そのようなパッケージがこのクラス・ローダーでまだ定義されていない場合)のパッケージに対応するこのクラス・ローダー内のパッケージを定義します。定義されたパッケージの名前は、バイト配列bで指定されたクラスの「バイナリ名」から派生します。定義されたパッケージのその他のプロパティは、Packageで指定されたものです。クラスの予想されるバイナリ名。クラス・データを構成するバイト。定義されている有効なクラス・ファイルの形式である必要があります。クラスのProtectionDomain戻り値:データから作成されたClassオブジェクトとProtectionDomain。このクラスを、このクラスとは異なる証明書セットで署名されたクラスを含むパッケージに追加しようとした場合、またはnameが"java."で始まり、このクラス・ローダーがプラットフォーム・クラス・ローダーまたはその祖先でない場合。ClassFormatError指定されたProtectionDomainを使用して、ByteBufferをクラスClassのインスタンスに変換します。int)のドキュメントで指定されているように、デフォルトの保護ドメインがクラスに割り当てられます。最初にクラスを解決してからでなければ、クラスを使用することはできません。ProtectionDomain)のドキュメントで指定されているルールと同じです。クラスの予想されるバイナリ名。クラス・データを構成するバイト。定義されている有効なクラス・ファイルの形式である必要があります。クラスのProtectionDomain、またはnull。戻り値:データから作成されたClassオブジェクトとProtectionDomain。データが有効なクラスを含まなかった場合。このクラスとは異なる証明書セットを使って署名されたクラスを含むパッケージに、このクラスを追加しようとする場合、またはnameが「java.」で始まる場合。c)指定されたクラスをリンクします。クラス・ローダーはこのメソッドを使って、クラスをリンクします。cクラスがすでにリンクされている場合、このメソッドは単に復帰します。"実行"の章で説明されているようにリンクされます。ClassNotFoundException指定されたバイナリ名を持つクラスを探して、必要に応じてロードします。このメソッドはシステム・クラス・ローダー(getSystemClassLoader()を参照)を使ってそのクラスをロードします。返されるClassオブジェクトは、そのオブジェクトに関連付けられたClassLoaderを1つ以上持つ場合があります。ClassLoaderのサブクラスでは通常、このメソッドを呼び出す必要はありません。これは、ほとんどのクラス・ローダーではfindClass(String)だけをオーバーライドすればよいからです。name)このローダーがこのバイナリ名を持つクラスの起動ローダーとしてJava仮想マシンにより記録されていた場合は、指定されたバイナリ名を持つクラスを返します。それ以外の場合はnullを返します。戻り値:Classオブジェクト。signers)クラスの署名者を設定します。このメソッドは、クラスの定義後に呼び出す必要があります。IOExceptionこのクラス・ローダーに定義されたモジュール内のリソースへのURLを返します。モジュールからのロードをサポートするクラス・ローダー実装は、このメソッドをオーバーライドする必要があります。APIのノート:このメソッドは、Class.getResource、Class.getResourceAsStream、およびModule.getResourceAsStreamメソッドの基礎となります。Module.getResourceAsStreamで指定されたカプセル化の規則の対象ではありません。実装要件:moduleNameがnullのとき、findResource(String)を呼び出すことによって、デフォルトの実装はリソースを見つけようとします。なければ、nullを返します。リソースが見つからない場合、URLを構築してリソースを見つけることができなかった場合、リソースへのアクセスがセキュリティ・マネージャによって拒否された場合、または指定された名前のモジュールがクラス・ローダーに定義されていない場合、null。name)指定された名前を持つリソースを検索します。リソースは、クラス・コードからコード位置に依存しない方法でアクセス可能なデータ(イメージ、オーディオ、テキストなど)です。リソースの名前は、「/」で区切られたパス名であり、これによってリソースが識別されます。名前付きモジュールのリソースは、Module.getResourceAsStreamで指定されたカプセル化ルールの影響を受けます。リソースが".class"で終わる名前を持つ特殊な場合を除いて、このメソッドは、パッケージがopened無条件で(このメソッドの呼び出し元がリソースと同じモジュール内にあっても)である場合にのみ、名前付きモジュールのパッケージ内のリソースを検索します。APIのノート:いくつかのモジュールが同じクラス・ローダーに定義され、複数のモジュールが指定された名前のリソースを含む場合、モジュールが検索される順序は指定されておらず、非常に予測不能な場合があります。このメソッドをオーバーライドするときは、実装によっていずれかの委譲がgetResources(String)メソッドと確実に一致するようになることをお薦めします。実装要件:デフォルトの実装では、最初にリソースの親クラス・ローダーを検索します。親がnullの場合、仮想マシンに組み込まれているクラス・ローダーのパスが検索されます。見つからなければ、このメソッドはfindResource(String)を呼び出してリソースを探します。nullリソースが見つからなかった場合、リソースを見つけるためにURLを構築できなかったか、リソースが無条件に開かれていないパッケージに入っているか、リソースへのアクセスがセキュリティ・マネージャによって拒否されました。IOException指定された名前を持つすべてのリソースを検索します。リソースは、クラス・コードからコード位置に依存しない方法でアクセス可能なデータ(イメージ、オーディオ、テキストなど)です。リソースの名前は、/で区切られたパス名であり、これによってリソースが識別されます。名前付きモジュールのリソースは、Module.getResourceAsStreamで指定されたカプセル化ルールの影響を受けます。リソースが".class"で終わる名前を持つ特殊な場合を除いて、このメソッドは、パッケージがopened無条件で(このメソッドの呼び出し元がリソースと同じモジュール内にあっても)である場合にのみ、名前付きモジュールのパッケージ内のリソースを検索します。APIのノート:複数のモジュールが同じクラス・ローダーに定義され、複数のモジュールが指定された名前のリソースを含む場合、順序は指定されず、非常に予測できない場合があります。このメソッドをオーバーライドするときは、実装によっていずれかの委譲がgetResource(String)メソッドと確実に一致するようになることをお薦めします。これにより、列挙のnextElementメソッドから返される最初の要素が必ず、getResource(String)メソッドが返すリソースと同じものになるはずです。実装要件:デフォルトの実装では、最初にリソースの親クラス・ローダーを検索します。親がnullの場合、仮想マシンに組み込まれているクラス・ローダーのパスが検索されます。次に、findResources(String)を呼び出して、このクラス・ローダー内の名前のリソースを検索します。親クラス・ローダーを検索した後にfindResourcesで見つかった要素が検索されたURLを要素とする列挙を返します。戻り値:リソースのURLオブジェクトの列挙型。リソースが見つからなかった場合、列挙は空になる。URLを構築できないリソースが、無条件でオープンされていないパッケージに含まれているか、リソースへのアクセスがセキュリティ・マネージャによって拒否され、列挙型に返されません。name)要素が指定された名前を持つすべてのリソースのURLであるストリームを返します。リソースは、クラス・コードからコード位置に依存しない方法でアクセス可能なデータ(イメージ、オーディオ、テキストなど)です。リソースの名前は、/で区切られたパス名であり、これによってリソースが識別されます。リソースは、返されたストリームが評価されるときに配置されます。評価結果がIOExceptionの場合、I/O例外はスローされるUncheckedIOExceptionにラップされます。名前付きモジュールのリソースは、Module.getResourceAsStreamで指定されたカプセル化ルールの影響を受けます。リソースが".class"で終わる名前を持つ特殊な場合を除いて、このメソッドは、パッケージがopened無条件で(このメソッドの呼び出し元がリソースと同じモジュール内にあっても)である場合にのみ、名前付きモジュールのパッケージ内のリソースを検索します。APIのノート:このメソッドをオーバーライドするときは、実装によっていずれかの委譲がgetResource(String)メソッドと確実に一致するようになることをお薦めします。これにより、ストリームによって返される最初の要素が、getResource(String)メソッドが返すものと同じリソースであることが保証されます。実装要件:デフォルトの実装では、getResourcesを呼び出して、指定された名前を持つすべてのリソースを検索し、列挙内の要素をソースとして持つストリームを返します。戻り値:リソースURLオブジェクトのストリーム。リソースが見つからない場合、ストリームは空になります。URLを構築できないリソースが、無条件に開かれないパッケージ内にあるか、セキュリティ・マネージャによってリソースへのアクセスが拒否され、ストリームに存在しません。name)指定された名前を持つリソースを検索します。クラス・ローダーの実装は、このメソッドをオーバーライドする必要があります。getResourceAsStreamメソッドで指定されたカプセル化のルールを実装する必要があります。パッケージがopenedを無条件に指定していない限り、名前付きモジュールのパッケージ内に非".class"リソースを見つけることはできません。実装要件:デフォルトの実装ではnullを返します。nullリソースが見つからなかった場合、リソースを見つけるためにURLを構築できなかったか、リソースが無条件に開かれていないパッケージに入っているか、リソースへのアクセスがセキュリティ・マネージャによって拒否されました。IOException指定された名前を持つすべてのリソースを表すURLオブジェクトの列挙型を返します。クラス・ローダーの実装は、このメソッドをオーバーライドする必要があります。getResourceAsStreamメソッドで指定されたカプセル化のルールを実装する必要があります。パッケージがopenedを無条件に指定していない限り、名前付きモジュールのパッケージ内に非".class"リソースを見つけることはできません。実装要件:デフォルトの実装は、要素を含まない列挙型を返します。戻り値:リソースのURLオブジェクトの列挙型。リソースが見つからなかった場合、列挙は空になる。URLを構築できないリソースが、無条件でオープンされていないパッケージに含まれているか、リソースへのアクセスがセキュリティ・マネージャによって拒否され、列挙型に返されません。registerAsParallelCapable()呼び出し元を「並列対応」として登録します。登録が成功するのは、次の条件をすべて満たす場合だけです。呼出し元のインスタンスが1つも作成されていない呼出し元のすべてのスーパー・クラス(Objectクラスは除く)が並行可能として登録されているいったんクラス・ローダーを並行可能として登録すると、それを元に戻す方法はありません。戻り値:true(呼び出し側が正常に機能するように登録されている場合)およびfalse(そうでない場合)。isRegisteredAsParallelCapable()このクラス・ローダーが「並列対応」、それ以外の場合はfalseとして登録されている場合はtrueを返します。戻り値:このクラス・ローダーがパラレルに対応している場合はtrue、そうでない場合はfalse。name)クラスをロードするために使用される検索パスから、指定された名前のリソースを探します。このメソッドはシステム・クラス・ローダー(getSystemClassLoader()を参照)を使ってリソースを見つけます。名前付きモジュールのリソースは、Module.getResourceAsStreamで指定されたカプセル化ルールの影響を受けます。リソースが".class"で終わる名前を持つ特殊な場合を除いて、このメソッドは、パッケージが無条件でopenedの場合にのみ、名前付きモジュールのパッケージ内のリソースを検索します。nullリソースが見つからない場合、リソースを見つけるためのURLを構築できなかった場合、リソースが無条件に開かれていないパッケージにある場合、またはリソースへのアクセスがセキュリティ・マネージャによって拒否された場合。IOExceptionクラスをロードするために使用される検索パスから、指定された名前のすべてのリソースを探します。このようにして見つかったリソースは、URLオブジェクトのEnumerationとして返されます。検索順については、getSystemResource(String)のドキュメントを参照してください。名前付きモジュールのリソースは、Module.getResourceAsStreamで指定されたカプセル化ルールの影響を受けます。リソースが".class"で終わる名前を持つ特殊な場合を除いて、このメソッドは、パッケージが無条件でopenedの場合にのみ、名前付きモジュールのパッケージ内のリソースを検索します。戻り値:リソースのURLオブジェクトの列挙型。リソースが見つからなかった場合、列挙は空になる。URLを構築できないリソースが、無条件でオープンされていないパッケージに含まれているか、リソースへのアクセスがセキュリティ・マネージャによって拒否され、列挙型に返されません。name)指定されたリソースを読み込む入力ストリームを返します。検索順については、getResource(String)のドキュメントを参照してください。名前付きモジュールのリソースは、Module.getResourceAsStreamで指定されたカプセル化ルールの影響を受けます。リソースが".class"で終わる名前を持つ特殊な場合を除いて、このメソッドは、パッケージが無条件でopenedの場合にのみ、名前付きモジュールのパッケージ内のリソースを検索します。戻り値:リソースを読み込むための入力ストリーム。nullリソースが見つからない場合、リソースが無条件に開かれていないパッケージ内にある場合、またはリソースへのアクセスがセキュリティ・マネージャによって拒否された場合。name)クラスをロードするのに使用される検索パスから、指定された名前のリソースを、読込み用にオープンします。このメソッドはシステム・クラス・ローダー(getSystemClassLoader()を参照)を使ってリソースを見つけます。名前付きモジュールのリソースは、Module.getResourceAsStreamで指定されたカプセル化ルールの影響を受けます。リソースが".class"で終わる名前を持つ特殊な場合を除いて、このメソッドは、パッケージが無条件でopenedの場合にのみ、名前付きモジュールのパッケージ内のリソースを検索します。戻り値:リソースを読み込むための入力ストリーム。nullリソースが見つからない場合、リソースが無条件に開かれていないパッケージ内にある場合、またはリソースへのアクセスがセキュリティ・マネージャによって拒否された場合。getParent()委譲のための親クラス・ローダーを返します。実装によっては、nullを使ってブートストラップ・クラス・ローダーを表すこともできます。このメソッドは、このクラス・ローダーの親がブートストラップ・クラス・ローダーの場合に、そのような実装でnullを返します。getUnnamedModule()このクラス・ローダーの名前のないModuleを返します。getPlatformClassLoader()プラットフォーム・クラス・ローダーを返します。すべての「プラットフォーム・クラス」は、プラットフォーム・クラス・ローダーに表示されます。実装上のノート:組み込みプラットフォーム・クラス・ローダーの名前は"platform"です。戻り値:プラットフォームClassLoader。getSystemClassLoader()システム・クラス・ローダーを返します。これは、新しいClassLoaderインスタンスのデフォルトの委譲の親で、通常、アプリケーションを起動するためのクラス・ローダーです。このメソッドは、ランタイム起動シーケンスの早い段階で最初に呼び出されます。その時点で、システム・クラス・ローダーが作成されます。このクラス・ローダーは、メイン・アプリケーション・スレッド(たとえば、メイン・クラスのmainメソッドを呼び出すスレッド)のコンテキスト・クラス・ローダーになります。デフォルトのシステム・クラス・ローダーは、このクラスの実装依存インスタンスです。このメソッドが最初に呼び出されたときにシステム・プロパティ"java.system.class.loader"が定義されている場合、このプロパティの値はシステム・クラス・ローダーとして返されるクラスの名前になります。このクラスは、委譲の親として使用される、ClassLoader型の単一のパラメータを取るpublicコンストラクタを定義する必要があります。次に、このコンストラクタを使用し、デフォルトのシステム・クラス・ローダーをパラメータに指定して、インスタンスが作成されます。結果として得られるクラス・ローダーは、システム・クラス・ローダーとして定義されます。構築中、クラス・ローダーはgetSystemClassLoader()を呼び出さないように十分注意しなければなりません。システム・クラス・ローダーの循環初期化が検出されると、IllegalStateExceptionがスローされます。実装上のノート:システム・クラス・ローダーをオーバーライドするシステム・プロパティは、VMがほぼ完全に初期化されるまで検査されません。起動時にこのメソッドを実行するコードは、システムが完全に初期化されるまで戻り値をキャッシュしないように注意してください。組み込みシステム・クラス・ローダーの名前は"app"です。VMの初期化中にシステム・プロパティ"java.class.path"が読み取られ、クラス・パスが決定されます。名前付きの場合、組込みシステム・クラス・ローダーにはクラス・パスがなく、アプリケーション・モジュール・パスを使用してクラスおよびリソースを検索します。ない場合、名前がない場合は現在の作業ディレクトリへのクラス・パスが設定されます。クラス・パス上のJARファイルには、クラス・パスに含める依存JARファイルを指定するためのClass-Pathマニフェスト属性が含まれる場合があります。Class-Pathエントリは、(詳細は、「JARファイルの仕様」を参照してください。)の妥当性について特定の条件を満たしている必要があります。無効なClass-Pathエントリは無視されます。デバッグの目的で、jdk.net.URLClassPath.showIgnoredClassPathEntriesシステム・プロパティがtrueに設定されている場合、無視されたエントリをコンソールに出力できます。「java.system.class.loader」プロパティにより指定されたクラス・ローダーの構築時に、再帰的に呼び出される場合。システム・プロパティ「java.system.class.loader」は定義されるが、名前付きクラスをロードできない場合、プロバイダ・クラスは必須コンストラクタを定義しないか、その呼出し時に例外がスローされる。エラーの根本原因は、Throwable.getCause()メソッドを使用して取得できる。sealBase)このClassLoaderにnameでパッケージを定義します。「パッケージ名」はクラス・ローダー内で一意でなければならず、一度作成すると再定義または変更することはできません。クラス・ローダーがバージョン情報などの特定のプロパティを持つパッケージを定義したい場合、クラス・ローダーはdefineClassを呼び出す前にこのdefinePackageメソッドを呼び出す必要があります。それ以外の場合、defineClassメソッドは、新しく定義されたクラスのパッケージに対応するこのクラス・ローダー内のパッケージを定義します。この定義されたパッケージのプロパティはPackageによって指定されます。APIのノート:JARのクラスのパッケージを定義したいクラス・ローダーは、通常、JARマニフェストの仕様と実装のタイトル、バージョン、およびベンダーを使用します。パッケージがJARマニフェストでsealedとして指定されている場合、JARファイルのURLは通常sealBaseとして使用されます。このクラス・ローダーによって定義されたパッケージ'p'のクラスが複数のJARからロードされている場合、Packageオブジェクトには、定義されたパッケージ'p'の最初のクラスおよび最初に読み込まれるパッケージ'p'のJARマニフェストによって異なる情報が含まれます。クラス・ローダーは、「名前付きモジュール」内のパッケージを明示的に定義するためにこのメソッドを呼び出さないことを強く推奨します。代わりに、クラスが「定義されている」のときにパッケージが自動的に定義されます。Packageを明示的に定義することが望ましい場合は、名前付きモジュールのすべてのパッケージがPackageで指定されたプロパティで定義されていることを確認する必要があります。なければ、名前付きモジュール内のいくつかのPackageオブジェクトは、例えば、異なるシール・ベースでシールされてもよい。nullでない場合、このパッケージは指定されたコード・ソースURLオブジェクトに関して密封されます。nameがnullの場合。name)このクラス・ローダーによって定義されたnameのPackageを返します。nameがnullの場合。getDefinedPackages()このクラス・ローダーによって定義されたすべてのPackageを返します。返される配列には、同じ名前の重複したPackageがありません。APIのノート:このメソッドは、既存のgetPackages()メソッドとの一貫性のために、SetまたはStreamではなく配列を返します。戻り値:このクラス・ローダーによって定義されたPackageオブジェクトの配列。このクラス・ローダーによってパッケージが定義されていない場合は、長さがゼロの配列を返します。複数のクラス・ローダーが互いに委譲して同じパッケージ名を持つクラスを定義し、そのようなローダーの1つがgetPackageのルックアップ動作に依存して親ローダーからPackageを返す場合、Packageによって公開されるプロパティは残りのプログラムで期待どおりにならない場合があります。Packageは、子ローダーによって定義されたpackage-info.classファイルに注釈が存在する場合でも、親ローダーによって定義されたpackage-info.classファイルの注釈のみを公開します。堅牢なアプローチは、指定されたクラス・ローダーのPackageを返すgetDefinedPackage(java.lang.String)メソッドを使用することです。このクラス・ローダーとその祖先のnameによるパッケージを検索します。このクラス・ローダーが指定された名前のPackageを定義する場合、Packageが返されます。それ以外の場合、このクラス・ローダーの祖先は、指定された名前のPackageの(親による親)を再帰的に検索されます。loaderはアプリケーション・クラス・ローダーに委譲することができますが、アプリケーション・クラス・ローダーはその祖先ではありません。プラットフォーム・クラス・ローダーで呼び出された場合、このメソッドはアプリケーション・クラス・ローダーに定義されたパッケージを検出しません。戻り値:このクラス・ローダーまたはその祖先によって定義された指定された名前のPackage、または見つからない場合はnull。nameがnullの場合。getPackages()このクラス・ローダーとその祖先によって定義されたすべてのPackageを返します。返される配列には、同じパッケージ名の複数のPackageオブジェクトが含まれ、それぞれがクラス・ローダー階層の異なるクラス・ローダーによって定義されます。loaderは、アプリケーション・クラス・ローダーに委譲することができます。言い換えれば、アプリケーション・クラス・ローダーに定義されたモジュール内のパッケージは、プラットフォーム・クラス・ローダーに表示されることがあります。アプリケーション・クラス・ローダーはその祖先ではないため、プラットフォーム・クラス・ローダーで呼び出されると、このメソッドはアプリケーション・クラス・ローダーに定義されたパッケージを返しません。libname)ネイティブ・ライブラリの絶対パス名を返します。VMは、このメソッドを呼び出して、このクラス・ローダーによってロードされたクラスのネイティブ・ライブラリを検索します。このメソッドがnullを返す場合、VMは「java.library.path」プロパティで指定されたパスに従ってライブラリを検索します。enabled)このクラス・ローダーのデフォルトのアサーション・ステータスを設定します。この設定により、将来、このクラス・ローダーによってロードされ初期化されるクラスのアサーションがデフォルトで有効か無効かが決まります。boolean)を呼び出します。このクラス・ローダーによりロードされるクラスのアサーションが、デフォルトで有効な場合はtrue、デフォルトで無効な場合はfalse。enabled)指定されたパッケージ・デフォルトのアサーション・ステータスを設定します。パッケージ・デフォルトのアサーション・ステータスにより、指定されたパッケージまたはその「サブパッケージ」のどれかに属する、将来初期化されるクラスのアサーション・ステータスが決まります。pという名前のパッケージのサブパッケージは、すべて名前が「p.」で始まります。javax.swing.textはjavax.swingのサブパッケージであり、java.utilとjava.lang.reflectはどちらもjavaのサブパッケージです。1つのクラスに複数のパッケージ・デフォルトが適用される場合は、そのクラスにもっとも関連性の高いパッケージ・デフォルトが、ほかのパッケージ・デフォルトに優先して使用されます。javax.langとjavax.lang.reflectの両方にパッケージ・デフォルトが関連付けられている場合、後者のパッケージ・デフォルトはjavax.lang.reflect内のクラスに適用されます。パッケージ・デフォルトは、クラス・ローダーのデフォルトのアサーション・ステータスよりも優先されます。boolean)を呼び出すことで、クラス単位でオーバーライドできます。パッケージ・デフォルトのアサーション・ステータスを設定するパッケージ名。7.4.2に関する項を参照してください。このクラス・ローダーによりロードされ、指定されたパッケージまたはそのサブパッケージのどれかに属するクラスが、デフォルトで有効なアサーションを保持する場合はtrue、デフォルトで無効なアサーションを保持する場合はfalse。enabled)このクラス・ローダーの指定されたトップレベル・クラスおよびそこに含まれるネストされたクラス内に対して、目的のアサーション・ステータスを設定します。この設定は、クラス・ローダーのデフォルトのアサーション・ステータス、およびパッケージ単位で適用可能なデフォルトに優先されます。(クラスの初期化後にアサーション・ステータスを変更することはできないため)。指定されたクラスがトップ・レベルのクラスではない場合、この呼出しは、どのクラスのアサーション・ステータスに対しても影響を与えません。アサーション・ステータスを設定するトップ・レベルのクラスの完全指定クラス名。初期化時に、指定されたクラスでアサーションを有効にする場合はtrue、アサーションを無効にする場合はfalse。clearAssertionStatus()このクラス・ローダーのデフォルトのアサーション・ステータスをfalseに設定し、クラス・ローダーに関連付けられたパッケージ・デフォルトまたはクラスのアサーション・ステータス設定をすべて破棄します。このメソッドを利用すると、クラス・ローダーがコマンド行または永続的なアサーション・ステータス設定をすべて無視するため、「クリーンな状態で」起動できます。SEドキュメンテーション」を参照してください。Javaは、米国およびその他の国におけるOracleおよび/またはその関連会社の商標または登録商標です。使用は「ライセンス条項」と「ドキュメンテーション再配布ポリシー」に従います。このページのスクリプトはWebページのトラフィックを追跡するものであり、内容は変更されません。