クラス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

      public URLClassLoader(URL[] urls, ClassLoader parent)
      指定されたURLの新しいURLClassLoaderを構築します。 URLは、親クラス・ローダー内で検索されたあと、クラスおよびリソースに指定された で検索されます。 jar:スキー URLは、JARファイルを参照するものとみなされます。 '/''で終わるfile:スキー URLは、ディレクトリを参照するものとみなされます。 それ以外の 合、URLはJARファイルを参照しているとみなされます。JARファイルは必要に応じてダウンロードおよびオープンされます。
      パラメータ:
      urls - クラスおよびリソースのロード元となるURL
      parent - 委譲のための親クラス・ローダー
      スロー:
      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 - クラスおよびリソースのロード元となるURL
      parent - 委譲のための親クラス・ローダー
      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 - クラスおよびリソースのロード元となるURL
      parent - 委譲のための親クラス・ローダー
      スロー:
      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 - クラスおよびリソースのロード元となるURL
      parent - 委譲のための親クラス・ローダー
      factory−URLの作成時に使うURLStreamHandlerFactory
      スロー:
      IllegalArgumentException - 指定された名前が空の 合。
      NullPointerException - urlsまたはその要 のいずれかがnullであるかどうか。
      導入されたバージョン:
      9
  • メソッドの詳細

    • getResourceAsStream

      public InputStream getResourceAsStream(String name)
      指定されたリソースを読み込む入力ストリー を返します。 このローダーが閉じられた 合、このメソッドによって開かれたリソースはすべて閉じられます。

      検索 については、ClassLoader.getResource(String)のドキュメントを参照してく さい。

      オーバーライド:
      getResourceAsStream、クラスClassLoader
      パラメータ:
      name - リソース名
      戻り値:
      リソースを読み込むための入力ストリー 。リソースが見つからなかった 合はnull
      スロー:
      NullPointerException - namenullである 合
      導入されたバージョン:
      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 - namenullの 合。
    • definePackage

      protected Package definePackage(String name, Manifest man, URL url)
      このURLClassLoaderに新しいパッケージを名前で定義します。 指定されたManifestに含まれる属性は、パッケージ・バージョンおよびシール情 の取得に使用されます。 シールされたパッケージの 合、そのパッケージのロード元となったコード・ソースURLを、追 のURLに指定します。
      パラメータ:
      name - パッケージ名
      man - Manifestパッケージのバージョンと封印情 を含む
      url−パッケージのコード・ソースURL。ない 合はnull
      戻り値:
      新しく定義されたPackageオブジェクト
      スロー:
      IllegalArgumentException - パッケージ名がこのクラス・ローダーによってすでに定義されている 合
    • findResource

      public URL findResource(String name)
      URL検索パス上で、指定された名前を持つリソースを検索します。
      オーバーライド:
      findResource、クラスClassLoader
      パラメータ:
      name−リソースの名前
      戻り値:
      リソースのURL。リソースが見つからなかった 合、またはローダーが閉じられている 合はnull
    • findResources

      public Enumeration<URL> findResources(String name) throws IOException
      URL検索パス上の指定された名前を持つリソースを表す、URLの列挙を返します。
      オーバーライド:
      findResources、クラスClassLoader
      パラメータ:
      name - リソース名
      戻り値:
      URLEnumeration ローダーが閉じている 合、Enumerationには要 は含まれません。
      スロー:
      IOException - 入出力例外が発生した 合
    • getPermissions

      protected PermissionCollection getPermissions(CodeSource codesource)
      オーバーライド:
      getPermissions、クラスSecureClassLoader
      パラメータ:
      codesource - the CodeSource
      戻り値:
      an 「権限コレクションが空です」
      スロー:
      NullPointerException - codesourcenullである 合。
    • newInstance

      public static URLClassLoader newInstance(URL[] urls, ClassLoader parent)
      指定されたURLと親クラス・ローダーに対する、URLClassLoaderの新しいインスタンスを作成します。
      パラメータ:
      urls - クラスおよびリソースの検索対象のURL
      parent - 委譲のための親クラス・ローダー
      戻り値:
      結果として得られるクラス・ローダー
      スロー:
      NullPointerException - urlsまたはその要 のいずれかがnullであるかどうか。
    • newInstance

      public static URLClassLoader newInstance(URL[] urls)
      指定されたURLとデフォルトの親クラス・ローダーに対する、URLClassLoaderの新しいインスタンスを作成します。
      パラメータ:
      urls - クラスおよびリソースの検索対象のURL
      戻り値:
      結果として得られるクラス・ローダー
      スロー:
      NullPointerException - urlsまたはその要 のいずれかがnullであるかどうか。