クラスURLClassLoader
java.lang.Object
java.lang.ClassLoader
java.security.SecureClassLoader
java.net.URLClassLoader
- すべての実装されたインタフェース:
Closeable,AutoCloseable
public class URLClassLoader extends SecureClassLoader implements Closeable
このクラス・ローダーは、JARファイルとディレクトリの両方を参照するURLの検索パスから、クラスとリソースをロードするために使用されます。
jar:スキー URL (JarURLConnectionを参照してく さい)は、JARファイルを参照するものとみなされます。 '/''で終わるfile:スキー URLは、ディレクトリを参照するものとみなされます。 それ以外の 合、URLはJARファイルを参照しているとみなされます。JARファイルは必要に応じてオープンされます。
このクラス・ローダーは、指定されたURLによって参照されるmulti-release JARファイルの内容からのクラスおよびリソースのロードをサポートします。
- 導入されたバージョン:
- 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) 「権限コレクションが空です」を返します。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
-
コンストラクタの詳細
-
URLClassLoader
public URLClassLoader(URL[] urls, ClassLoader parent) 指定されたURLの新しいURLClassLoaderを構築します。 URLは、親クラス・ローダー内で検索されたあと、クラスおよびリソースに指定された で検索されます。jar:スキー URLは、JARファイルを参照するものとみなされます。 '/''で終わるfile:スキー URLは、ディレクトリを参照するものとみなされます。 それ以外の 合、URLはJARファイルを参照しているとみなされます。JARファイルは必要に応じてダウンロードおよびオープンされます。- パラメータ:
urls- クラスおよびリソースのロード元となるURLparent- 委譲のための親クラス・ローダー- スロー:
NullPointerException-urlsまたはその要 のいずれかがnullであるかどうか。
-
URLClassLoader
public URLClassLoader(URL[] urls) 委譲関係の親になっているデフォルトのClassLoaderを使って、指定されたURLの新しいURLClassLoaderを構築します。 URLは、親クラス・ローダー内で検索されたあと、クラスおよびリソースに指定された で検索されます。 「/」で終わるURLはすべて、ディレクトリを参照しているとみなされます。 それ以外の 合、URLはJARファイルを参照しているとみなされます。JARファイルは必要に応じてダウンロードおよびオープンされます。- パラメータ:
urls- クラスおよびリソースのロード元となるURL- スロー:
NullPointerException-urlsまたはその要 のいずれかがnullであるかどうか。
-
URLClassLoader
public URLClassLoader(URL[] urls, ClassLoader parent, URLStreamHandlerFactory factory) 指定されたURL、親クラス・ローダー、およびURLStreamHandlerFactoryのための新しいURLClassLoaderを構築します。 parent引数は、委譲用の親クラス・ローダーとして使用されます。 factory引数は、新しいJAR URLを作成するときにプロトコル・ハンドラを取得するためのストリー ・ハンドラ・ファクトリとして使用されます。- パラメータ:
urls- クラスおよびリソースのロード元となるURLparent- 委譲のための親クラス・ローダーfactory−URLの作成時に使うURLStreamHandlerFactory- スロー:
NullPointerException-urlsまたはその要 のいずれかがnullであるかどうか。
-
URLClassLoader
public URLClassLoader(String name, URL[] urls, ClassLoader parent) 指定されたURLの新しい名前URLClassLoaderを構築します。 URLは、親クラス・ローダー内で検索されたあと、クラスおよびリソースに指定された で検索されます。 「/」で終わるURLはすべて、ディレクトリを参照しているとみなされます。 それ以外の 合、URLはJARファイルを参照しているとみなされます。JARファイルは必要に応じてダウンロードおよびオープンされます。- パラメータ:
name- クラス・ローダー名; 名前が付けられていない 合はnullurls- クラスおよびリソースのロード元となるURLparent- 委譲のための親クラス・ローダー- スロー:
IllegalArgumentException- 指定された名前が空の 合。NullPointerException-urlsまたはその要 のいずれかがnullであるかどうか。- 導入されたバージョン:
- 9
-
URLClassLoader
public URLClassLoader(String name, URL[] urls, ClassLoader parent, URLStreamHandlerFactory factory) 指定されたURL、親クラス・ローダーおよびURLStreamHandlerFactoryの新しい名前付きURLClassLoaderを構築します。 parent引数は、委譲用の親クラス・ローダーとして使用されます。 factory引数は、新しいJAR URLを作成するときにプロトコル・ハンドラを取得するためのストリー ・ハンドラ・ファクトリとして使用されます。- パラメータ:
name- クラス・ローダー名; 名前が付けられていない 合はnullurls- クラスおよびリソースのロード元となるURLparent- 委譲のための親クラス・ローダーfactory−URLの作成時に使うURLStreamHandlerFactory- スロー:
IllegalArgumentException- 指定された名前が空の 合。NullPointerException-urlsまたはその要 のいずれかがnullであるかどうか。- 導入されたバージョン:
- 9
-
-
メソッドの詳細
-
getResourceAsStream
public InputStream getResourceAsStream(String name) 指定されたリソースを読み込む入力ストリー を返します。 このローダーが閉じられた 合、このメソッドによって開かれたリソースはすべて閉じられます。検索 については、
ClassLoader.getResource(String)のドキュメントを参照してく さい。- オーバーライド:
getResourceAsStream、クラスClassLoader- パラメータ:
name- リソース名- 戻り値:
- リソースを読み込むための入力ストリー 。リソースが見つからなかった 合は
null - スロー:
NullPointerException-nameがnullである 合- 導入されたバージョン:
- 1.7
-
close
public void close() throws IOExceptionこのURLClassLoaderを閉じて、このローダーによって定義された新しいクラスやリソースをロードするために使用できなくします。 委譲階層におけるこのローダーの親が定義しているクラスとリソースには、引き続きアクセス可能です。 すでにロード済みのクラスやリソースにも、引き続きアクセス可能です。jar: URLおよびfile: URLの 合は、それによって開かれたファイルもすべて閉じられます。
closeメソッドが呼び出されたときに別のスレッドがクラスをロード中である 合、そのロードの結果は未定義となります。このメソッドは、
IOExceptionを内部的にキャッチすることで、開いているすべてのファイルをベスト・エフォートで閉じようとします。 非チェック例外とエラーはキャッチされません。 すでに閉じられたローダーに対してcloseを呼び出しても何の効果もありません。- 定義:
close、インタフェースAutoCloseable- 定義:
close、インタフェースCloseable- スロー:
IOException- 結果がIOExceptionになったこのクラス・ローダーによって開かれたファイルを閉じる 合。 こうした例外は内部的にキャッチされます。 1つ けがキャッチされた 合、再スローされます。 複数の例外がキャッチされた 合、2つ目以降の例外は、キャッチされた最初の例外の抑制された例外として追 され、それが再スローされます。- 導入されたバージョン:
- 1.7
-
addURL
protected void addURL(URL url) 指定されたURLを、クラスおよびリソースを検索するためのURLリストに追 します。指定されたURLが、
nullであるか、URLのリストにすでに含まれている 合、または、このローダーが閉じられている 合、このメソッドを呼び出しても何の効果もありません。- パラメータ:
url- URLの検索パスに追 するURL
-
getURLs
public URL[] getURLs()クラスおよびリソースをロードするためのURLの検索パスを返します。 これには、コンストラクタに指定されたURLの元のリストと、あとでaddURL()メソッドによって追 されたURLも含まれます。- 戻り値:
- クラスおよびリソースをロードするためのURLの検索パス。
-
findClass
protected 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- パッケージ名がこのクラス・ローダーによってすでに定義されている 合
-
findResource
URL検索パス上で、指定された名前を持つリソースを検索します。- オーバーライド:
findResource、クラスClassLoader- パラメータ:
name−リソースの名前- 戻り値:
- リソースの
URL。リソースが見つからなかった 合、またはローダーが閉じられている 合はnull。
-
findResources
public Enumeration<URL> findResources(String name) throws IOException URL検索パス上の指定された名前を持つリソースを表す、URLの列挙を返します。- オーバーライド:
findResources、クラスClassLoader- パラメータ:
name- リソース名- 戻り値:
URLのEnumeration。 ローダーが閉じている 合、Enumerationには要 は含まれません。- スロー:
IOException- 入出力例外が発生した 合
-
getPermissions
protected PermissionCollection getPermissions(CodeSource codesource) 「権限コレクションが空です」を返します。- オーバーライド:
getPermissions、クラスSecureClassLoader- パラメータ:
codesource- theCodeSource- 戻り値:
- an 「権限コレクションが空です」
- スロー:
NullPointerException-codesourceがnullである 合。
-
newInstance
public static URLClassLoader newInstance(URL[] urls, ClassLoader parent) 指定されたURLと親クラス・ローダーに対する、URLClassLoaderの新しいインスタンスを作成します。- パラメータ:
urls- クラスおよびリソースの検索対象のURLparent- 委譲のための親クラス・ローダー- 戻り値:
- 結果として得られるクラス・ローダー
- スロー:
NullPointerException-urlsまたはその要 のいずれかがnullであるかどうか。
-
newInstance
public static URLClassLoader newInstance(URL[] urls) 指定されたURLとデフォルトの親クラス・ローダーに対する、URLClassLoaderの新しいインスタンスを作成します。- パラメータ:
urls- クラスおよびリソースの検索対象のURL- 戻り値:
- 結果として得られるクラス・ローダー
- スロー:
NullPointerException-urlsまたはその要 のいずれかがnullであるかどうか。
-