- すべての実装されたインタフェース:
- Closeable,- AutoCloseable
- 直系の既知のサブクラス:
- MLet
jar:スキームURL (JarURLConnectionを参照してください)は、JARファイルを参照するものとします。 '/'で終わる任意のfile:スキームURLは、ディレクトリを参照するものとみなされます。 それ以外の場合、URLはJARファイルを参照しているとみなされます。JARファイルは必要に応じてオープンされます。 
 このクラス・ローダーは、指定されたURLによって参照されるmulti-release JARファイルの内容からクラスおよびリソースのロードをサポートします。
URLClassLoaderのインスタンスを生成したスレッドのAccessControlContextは、そのあとにクラスおよびリソースをロードするときに使われます。
ロードされるクラスには、デフォルトでは、URLClassLoaderの作成時に指定されたURLだけに接続できるアクセス権が与えられます。
- 導入されたバージョン:
- 1.2
- 
コンストラクタのサマリーコンストラクタコンストラクタ説明URLClassLoader(String name, URL[] urls, ClassLoader parent) 指定されたURLの新しい名前URLClassLoaderを構築します。URLClassLoader(String name, URL[] urls, ClassLoader parent, URLStreamHandlerFactory factory) 指定されたURL、親クラス・ローダー、およびURLStreamHandlerFactoryの新しい名前URLClassLoaderを構築します。URLClassLoader(URL[] urls) 委譲関係の親になっているデフォルトのClassLoaderを使って、指定されたURLの新しいURLClassLoaderを構築します。URLClassLoader(URL[] urls, ClassLoader parent) 指定されたURLの新しいURLClassLoaderを構築します。URLClassLoader(URL[] urls, ClassLoader parent, URLStreamHandlerFactory factory) 指定されたURL、親クラス・ローダー、およびURLStreamHandlerFactoryのための新しいURLClassLoaderを構築します。
- 
メソッドのサマリー修飾子と型メソッド説明protected void指定されたURLを、クラスおよびリソースを検索するためのURLリストに追加します。voidclose()このURLClassLoaderを閉じて、このローダーによって定義された新しいクラスやリソースをロードするために使用できなくします。protected PackagedefinePackage(String name, Manifest man, URL url) このURLClassLoaderに新しいパッケージを名前で定義します。protected Class<?>URL検索パスから、指定された名前を持つクラスを検索してロードします。findResource(String name) URL検索パス上で、指定された名前を持つリソースを検索します。findResources(String name) URL検索パス上の指定された名前を持つリソースを表す、URLの列挙を返します。protected PermissionCollectiongetPermissions(CodeSource codesource) 指定されたcodesourceオブジェクトのアクセス権を返します。getResourceAsStream(String name) 指定されたリソースを読み込む入力ストリームを返します。URL[]getURLs()クラスおよびリソースをロードするためのURLの検索パスを返します。static URLClassLoadernewInstance(URL[] urls) 指定されたURLとデフォルトの親クラス・ローダーに対する、URLClassLoaderの新しいインスタンスを作成します。static URLClassLoadernewInstance(URL[] urls, ClassLoader parent) 指定されたURLと親クラス・ローダーに対する、URLClassLoaderの新しいインスタンスを作成します。クラス java.security.SecureClassLoaderで宣言されたメソッドdefineClass, defineClassクラス java.lang.ClassLoaderで宣言されたメソッドclearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findSystemClass, getClassLoadingLock, getDefinedPackage, getDefinedPackages, getName, getPackage, getPackages, getParent, getPlatformClassLoader, getResource, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, getUnnamedModule, isRegisteredAsParallelCapable, loadClass, loadClass, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
- 
コンストラクタの詳細- 
URLClassLoaderpublic URLClassLoader(URL[] urls, ClassLoader parent) 指定されたURLの新しいURLClassLoaderを構築します。 URLは、親クラス・ローダー内で検索されたあと、クラスおよびリソースに指定された順で検索されます。 任意のjar:スキームURLは、JARファイルを参照するものとみなされます。 '/'で終わる任意のfile:スキームURLは、ディレクトリを参照するものとみなされます。 それ以外の場合、URLはJARファイルを参照しているとみなされます。JARファイルは必要に応じてダウンロードおよびオープンされます。セキュリティ・マネージャが存在する場合、このクラス・ローダーの作成が許可されるように、このメソッドは最初にセキュリティ・マネージャの checkCreateClassLoaderメソッドを呼び出します。- パラメータ:
- urls- クラスおよびリソースのロード元となるURL
- parent- 委譲のための親クラス・ローダー
- 例外:
- SecurityException- セキュリティ・マネージャが存在し、その- checkCreateClassLoaderメソッドがクラス・ローダーの作成を許可しない場合。
- NullPointerException-- urlsまたはその要素のいずれかが- nullであるかどうか。
- 関連項目:
 
- 
URLClassLoaderpublic URLClassLoader(URL[] urls) 委譲関係の親になっているデフォルトのClassLoaderを使って、指定されたURLの新しいURLClassLoaderを構築します。 URLは、親クラス・ローダー内で検索されたあと、クラスおよびリソースに指定された順で検索されます。 「/」で終わるURLはすべて、ディレクトリを参照しているとみなされます。 それ以外の場合、URLはJARファイルを参照しているとみなされます。JARファイルは必要に応じてダウンロードおよびオープンされます。セキュリティ・マネージャが存在する場合、このクラス・ローダーの作成が許可されるように、このメソッドは最初にセキュリティ・マネージャの checkCreateClassLoaderメソッドを呼び出します。- パラメータ:
- urls- クラスおよびリソースのロード元となるURL
- 例外:
- SecurityException- セキュリティ・マネージャが存在し、その- checkCreateClassLoaderメソッドがクラス・ローダーの作成を許可しない場合。
- NullPointerException-- urlsまたはその要素のいずれかが- nullであるかどうか。
- 関連項目:
 
- 
URLClassLoaderpublic URLClassLoader(URL[] urls, ClassLoader parent, URLStreamHandlerFactory factory) 指定されたURL、親クラス・ローダー、およびURLStreamHandlerFactoryのための新しいURLClassLoaderを構築します。 parent引数は、委譲用の親クラス・ローダーとして使用されます。 factory引数は、新しいJAR URLを作成するときにプロトコル・ハンドラを取得するためのストリーム・ハンドラ・ファクトリとして使用されます。セキュリティ・マネージャが存在する場合、このクラス・ローダーの作成が許可されるように、このメソッドは最初にセキュリティ・マネージャの checkCreateClassLoaderメソッドを呼び出します。- パラメータ:
- urls- クラスおよびリソースのロード元となるURL
- parent- 委譲のための親クラス・ローダー
- factory−URLの作成時に使うURLStreamHandlerFactory
- 例外:
- SecurityException- セキュリティ・マネージャが存在し、その- checkCreateClassLoaderメソッドがクラス・ローダーの作成を許可しない場合。
- NullPointerException-- urlsまたはその要素のいずれかが- nullであるかどうか。
- 関連項目:
 
- 
URLClassLoaderpublic URLClassLoader(String name, URL[] urls, ClassLoader parent) 指定されたURLの新しい名前URLClassLoaderを構築します。 URLは、親クラス・ローダー内で検索されたあと、クラスおよびリソースに指定された順で検索されます。 「/」で終わるURLはすべて、ディレクトリを参照しているとみなされます。 それ以外の場合、URLはJARファイルを参照しているとみなされます。JARファイルは必要に応じてダウンロードおよびオープンされます。- パラメータ:
- name- クラス・ローダー名;名前が付けられていない場合は- null
- urls- クラスおよびリソースのロード元となるURL
- parent- 委譲のための親クラス・ローダー
- 例外:
- IllegalArgumentException- 指定された名前が空の場合。
- NullPointerException-- urlsまたはその要素のいずれかが- nullであるかどうか。
- SecurityException- セキュリティ・マネージャが存在し、- SecurityManager.checkCreateClassLoader()メソッドがクラス・ローダーの作成を許可しない場合。
- 導入されたバージョン:
- 9
 
- 
URLClassLoaderpublic URLClassLoader(String name, URL[] urls, ClassLoader parent, URLStreamHandlerFactory factory) 指定されたURL、親クラス・ローダー、およびURLStreamHandlerFactoryの新しい名前URLClassLoaderを構築します。 parent引数は、委譲用の親クラス・ローダーとして使用されます。 factory引数は、新しいJAR URLを作成するときにプロトコル・ハンドラを取得するためのストリーム・ハンドラ・ファクトリとして使用されます。- パラメータ:
- name- クラス・ローダー名;名前が付けられていない場合は- null
- urls- クラスおよびリソースのロード元となるURL
- parent- 委譲のための親クラス・ローダー
- factory−URLの作成時に使うURLStreamHandlerFactory
- 例外:
- IllegalArgumentException- 指定された名前が空の場合。
- NullPointerException-- urlsまたはその要素のいずれかが- nullであるかどうか。
- SecurityException- セキュリティ・マネージャが存在し、その- checkCreateClassLoaderメソッドがクラス・ローダーの作成を許可しない場合。
- 導入されたバージョン:
- 9
 
 
- 
- 
メソッドの詳細- 
getResourceAsStreampublic InputStream getResourceAsStream(String name) 指定されたリソースを読み込む入力ストリームを返します。 このローダーが閉じられた場合、このメソッドによって開かれたリソースはすべて閉じられます。検索順については、 ClassLoader.getResource(String)のドキュメントを参照してください。- オーバーライド:
- getResourceAsStream、クラス- ClassLoader
- パラメータ:
- name- リソース名
- 戻り値:
- リソースを読み込むための入力ストリーム。リソースが見つからなかった場合はnull
- 例外:
- NullPointerException-- nameが- nullである場合
- 導入されたバージョン:
- 1.7
 
- 
closepublic void close() throws IOExceptionこのURLClassLoaderを閉じて、このローダーによって定義された新しいクラスやリソースをロードするために使用できなくします。 委譲階層におけるこのローダーの親が定義しているクラスとリソースには、引き続きアクセス可能です。 すでにロード済みのクラスやリソースにも、引き続きアクセス可能です。jar: URLおよびfile: URLの場合は、それによって開かれたファイルもすべて閉じられます。 closeメソッドが呼び出されたときに別のスレッドがクラスをロード中である場合、そのロードの結果は未定義となります。このメソッドは、 IOExceptionを内部的にキャッチすることで、開いているすべてのファイルをベスト・エフォートで閉じようとします。 非チェック例外とエラーはキャッチされません。 すでに閉じられたローダーに対してcloseを呼び出しても何の効果もありません。- 定義:
- close、インタフェース- AutoCloseable
- 定義:
- close、インタフェース- Closeable
- 例外:
- IOException- 結果がIOExceptionになったこのクラス・ローダーによって開かれたファイルを閉じる場合。 こうした例外は内部的にキャッチされます。 1つだけがキャッチされた場合、再スローされます。 複数の例外がキャッチされた場合、2つ目以降の例外は、キャッチされた最初の例外の抑制された例外として追加され、それが再スローされます。
- SecurityException- セキュリティ・マネージャが設定され、それが- RuntimePermission- (「closeClassLoader」)を拒否した場合
- 導入されたバージョン:
- 1.7
 
- 
addURLprotected void addURL(URL url) 指定されたURLを、クラスおよびリソースを検索するためのURLリストに追加します。指定されたURLが、 nullであるか、URLのリストにすでに含まれている場合、または、このローダーが閉じられている場合、このメソッドを呼び出しても何の効果もありません。- パラメータ:
- url- URLの検索パスに追加するURL
 
- 
getURLspublic URL[] getURLs()クラスおよびリソースをロードするためのURLの検索パスを返します。 これには、コンストラクタに指定されたURLの元のリストと、あとでaddURL()メソッドによって追加されたURLも含まれます。- 戻り値:
- クラスおよびリソースをロードするためのURLの検索パス。
 
- 
findClassprotected Class<?> findClass(String name) throws ClassNotFoundException URL検索パスから、指定された名前を持つクラスを検索してロードします。 JARファイルを参照しているURLはすべて、クラスが見つかるまで必要に応じてロードおよびオープンされます。- オーバーライド:
- findClass、クラス- ClassLoader
- パラメータ:
- name−クラスの名前
- 戻り値:
- 結果として得られるクラス
- 例外:
- ClassNotFoundException- クラスが見つからなかった場合。またはローダーが閉じられている場合。
- NullPointerException-- nameが- nullの場合。
 
- 
definePackageこのURLClassLoaderに新しいパッケージを名前で定義します。 指定されたManifestに含まれる属性は、パッケージのバージョンとシール情報を取得するために使用されます。 シールされたパッケージの場合、そのパッケージのロード元となったコード・ソースURLを、追加のURLに指定します。- パラメータ:
- name- パッケージ名
- man-- Manifestパッケージのバージョンと封印情報を含む
- url−パッケージのコード・ソースURL。ない場合はnull
- 戻り値:
- 新しく定義されたPackageオブジェクト
- 例外:
- IllegalArgumentException- パッケージ名がこのクラス・ローダーによってすでに定義されている場合
 
- 
findResourceURL検索パス上で、指定された名前を持つリソースを検索します。- オーバーライド:
- findResource、クラス- ClassLoader
- パラメータ:
- name−リソースの名前
- 戻り値:
- リソースのURL。リソースが見つからなかった場合、またはローダーが閉じられている場合はnull。
 
- 
findResourcespublic Enumeration<URL> findResources(String name) throws IOException URL検索パス上の指定された名前を持つリソースを表す、URLの列挙を返します。- オーバーライド:
- findResources、クラス- ClassLoader
- パラメータ:
- name- リソース名
- 戻り値:
- URLの- Enumeration。 ローダーが閉じている場合、Enumerationには要素は含まれません。
- 例外:
- IOException- 入出力例外が発生した場合
 
- 
getPermissionsprotected PermissionCollection getPermissions(CodeSource codesource) 指定されたcodesourceオブジェクトのアクセス権を返します。 このメソッドの実装はまず、super.getPermissionsを呼び出し、次に、codesourceのURLに基づいてアクセス権を追加します。このURLのプロトコルが「jar」の場合、許可されるアクセス権は、JARファイルのURLが必要とするアクセス権に基づいたものとなります。 プロトコルが「file」で、機関コンポーネントが存在する場合、その機関に接続し、機関からの接続を受け入れるアクセス権が付与される場合があります。 プロトコルが「file」で、パスとしてファイルが指定されている場合には、そのファイルの読取り権が許可されます。 プロトコルが「file」で、パスがディレクトリである場合には、そのディレクトリ内に含まれるすべてのファイルの読取り権と、(再帰的に)すべてのファイルとサブディレクトリの読取り権が、許可されます。 プロトコルが「file」ではない場合は、URLで指定されたホストに接続し、そのホストからの接続を受け入れるアクセス権が付与されます。 - オーバーライド:
- getPermissions、クラス- SecureClassLoader
- パラメータ:
- codesource- コード・ソース
- 戻り値:
- コード・ソースに与えられたアクセス権
- 例外:
- NullPointerException-- codesourceが- nullである場合。
 
- 
newInstancepublic static URLClassLoader newInstance(URL[] urls, ClassLoader parent) 指定されたURLと親クラス・ローダーに対する、URLClassLoaderの新しいインスタンスを作成します。 セキュリティ・マネージャがインストールされている場合、このメソッドから返されたURLClassLoaderのloadClassメソッドは、クラスをロードする前にSecurityManager.checkPackageAccessメソッドを呼び出します。- パラメータ:
- urls- クラスおよびリソースの検索対象のURL
- parent- 委譲のための親クラス・ローダー
- 戻り値:
- 結果として得られるクラス・ローダー
- 例外:
- NullPointerException-- urlsまたはその要素のいずれかが- nullであるかどうか。
 
- 
newInstancepublic static URLClassLoader newInstance(URL[] urls) 指定されたURLとデフォルトの親クラス・ローダーに対する、URLClassLoaderの新しいインスタンスを作成します。 セキュリティ・マネージャがインストールされている場合、このメソッドから返されたURLClassLoaderのloadClassメソッドは、クラスをロードする前にSecurityManager.checkPackageAccessを呼び出します。- パラメータ:
- urls- クラスおよびリソースの検索対象のURL
- 戻り値:
- 結果として得られるクラス・ローダー
- 例外:
- NullPointerException-- urlsまたはその要素のいずれかが- nullであるかどうか。
 
 
-