クラス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リストに追加します。void
close()
このURLClassLoaderを閉じて、このローダーによって定義された新しいクラスやリソースをロードするために使用できなくします。protected Package
definePackage
(String name, Manifest man, URL url) このURLClassLoader
に新しいパッケージを名前で定義します。protected Class
<?> URL検索パスから、指定された名前を持つクラスを検索してロードします。findResource
(String name) URL検索パス上で、指定された名前を持つリソースを検索します。findResources
(String name) URL検索パス上の指定された名前を持つリソースを表す、URLの列挙を返します。protected PermissionCollection
getPermissions
(CodeSource codesource) 「権限コレクションが空です」を返します。getResourceAsStream
(String name) 指定されたリソースを読み込む入力ストリームを返します。URL[]
getURLs()
クラスおよびリソースをロードするためのURLの検索パスを返します。static URLClassLoader
newInstance
(URL[] urls) 指定されたURLとデフォルトの親クラス・ローダーに対する、URLClassLoaderの新しいインスタンスを作成します。static URLClassLoader
newInstance
(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
- クラス・ローダー名; 名前が付けられていない場合はnull
urls
- クラスおよびリソースのロード元となる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
- クラス・ローダー名; 名前が付けられていない場合はnull
urls
- クラスおよびリソースのロード元となる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
であるかどうか。
-