モジュール java.base
パッケージ java.net

クラスJarURLConnection



  • public abstract class JarURLConnection
    extends URLConnection
    JAR (Java ARchive)ファイル、またはJARファイル内にあるエントリへのURL接続です。

    JAR URLの構文は、次のとおりです。

     jar:<url>!/{entry}
     

    たとえば、

    jar:http://www.foo.com/bar/baz.jar!/COM/foo/Quux.class

    JAR URLは、あるJARファイルを参照するか、あるJARファイル内のエントリを参照する場合に使用するようにしてください。 上記の例は、JARのエントリを参照するJAR URLです。 次のようにエントリ名が省略された場合、そのURLはJARファイルの全体を参照します。jar:http://www.foo.com/bar/baz.jar!/

    作成したURLがJAR URLであることがわかっていて、JARに固有の機能が必要である場合には、ジェネリックURLConnectionをJarURLConnectionにキャストするようにしてください。 たとえば、

     URL url = new URL("jar:file:/home/duke/duke.jar!/");
     JarURLConnection jarConnection = (JarURLConnection)url.openConnection();
     Manifest manifest = jarConnection.getManifest();
     

    JarURLConnectionインスタンスは、JARファイルからの読取り時にしか使用できません。 このクラスでOutputStreamを取得して対象のJARファイルを変更したりデータを書き込んだりすることはできません。

    Jarエントリ
    jar:http://www.foo.com/bar/baz.jar!/COM/foo/Quux.class
    Jarファイル
    jar:http://www.foo.com/bar/baz.jar!/
    Jarディレクトリ
    jar:http://www.foo.com/bar/baz.jar!/COM/foo/

    !/は、区切り文字です。

    new URL(context, spec)を使ったJAR urlの作成では、次のルールが適用されます。

    • コンテキストURLがなく、URLコンストラクタに渡された指定が区切り文字を含まない場合は、そのURLはJarFileを参照していると見なされる。
    • コンテキストURLがある場合は、そのコンテキストURLがJARファイルまたはJarディレクトリを参照していると見なされる。
    • 指定が「/」で始まっている場合は、そのJarディレクトリを無視して、Jarファイルのルートを指定していると見なされる。

      コンテキスト: jar:http://www.foo.com/bar/jar.jar!/、指定:baz/entry.txt
      url:jar:http://www.foo.com/bar/jar.jar!/baz/entry.txt
      コンテキスト: jar:http://www.foo.com/bar/jar.jar!/baz、指定:entry.txt
      url:jar:http://www.foo.com/bar/jar.jar!/baz/entry.txt
      コンテキスト: jar:http://www.foo.com/bar/jar.jar!/baz、指定:/entry.txt
      url:jar:http://www.foo.com/bar/jar.jar!/entry.txt
    導入されたバージョン:
    1.2
    関連項目:
    URL, URLConnection, JarFile, JarInputStream, Manifest, ZipEntry
    • フィールドの詳細

      • jarFileURLConnection

        protected URLConnection jarFileURLConnection
        接続が開始された場合のJARファイルURLへの接続。 これはconnectによって設定されるべきです。
    • コンストラクタの詳細

      • JarURLConnection

        protected JarURLConnection​(URL url)
                            throws MalformedURLException
        指定したURLに新しいJarURLConnectionを作成します。
        パラメータ:
        url - URL
        例外:
        MalformedURLException−指定文字列に有効なプロトコルが見つからない場合、または文字列を解析できない場合。
    • メソッドの詳細

      • getJarFileURL

        public URL getJarFileURL​()
        この接続で使うJARファイルのURLを返します。
        戻り値:
        この接続で使うJARファイルのURL。
      • getEntryName

        public String getEntryName​()
        この接続のエントリ名を返します。 この接続に対応するJARファイルURLが、JARファイル・エントリではなくJARファイルを指している場合、このメソッドはnullを返します。
        戻り値:
        この接続で使うエントリ名(エントリがある場合)。
      • getJarFile

        public abstract JarFile getJarFile​()
                                    throws IOException
        この接続のJARファイルを返します。
        戻り値:
        この接続のJARファイル。 この接続がJARファイルのエントリへの接続である場合には、JARファイル・オブジェクトが返される
        例外:
        IOException−この接続のJARファイルへの接続試行中にIOExceptionが発生した場合。
        関連項目:
        URLConnection.connect()
      • getManifest

        public Manifest getManifest​()
                             throws IOException
        この接続のManifestが存在する場合はそれを、存在しない場合はnullを、それぞれ返します。
        戻り値:
        この接続のJARファイル・オブジェクトに対応するマニフェスト・オブジェクト。
        例外:
        IOException - この接続のJARファイルの取得時にIOExceptionがスローされた場合。
        関連項目:
        getJarFile()
      • getJarEntry

        public JarEntry getJarEntry​()
                             throws IOException
        この接続のJARエントリ・オブジェクトが存在する場合にそれを返します。 この接続に対応するJARファイルURLが、JARファイル・エントリではなくJARファイルを指している場合、このメソッドはnullを返します。
        戻り値:
        この接続のJARエントリ・オブジェクト。この接続のJAR URLがJARファイルを指している場合はnull。
        例外:
        IOException - この接続のJARファイルの取得時にIOExceptionがスローされた場合。
        関連項目:
        getJarFile(), getJarEntry()
      • getAttributes

        public Attributes getAttributes​()
                                 throws IOException
        接続で使うURLがJARファイル・エントリを指す場合、この接続用のAttributesオブジェクトを返します。そうでない場合はnullを返します。
        戻り値:
        この接続のURLがJARファイル・エントリを指している場合はこの接続のAttributesオブジェクト、そうでない場合はnull。
        例外:
        IOException - JARエントリの取得時にIOExceptionがスローされた場合。
        関連項目:
        getJarEntry()
      • getMainAttributes

        public Attributes getMainAttributes​()
                                     throws IOException
        この接続で使うJARファイルの主要なAttributesを返します。
        戻り値:
        この接続で使うJARファイルの主要なAttributes。
        例外:
        IOException−マニフェストの取得時にIOExceptionがスローされた場合。
        関連項目:
        getJarFile(), getManifest()
      • getCertificates

        public Certificate[] getCertificates​()
                                      throws IOException
        接続で使うURLがJARファイル・エントリを指す場合はこの接続用のCertificateオブジェクト、そうでない場合はnullを返します。 このメソッドは、入力ストリームを最後まで読みとって、接続が完全に検証されないかぎり呼び出せません。 そうでない場合は、このメソッドはnullを返します
        戻り値:
        接続で使うURLがJARファイル・エントリを指す場合、この接続用のCertificateオブジェクト、そうでない場合はnull。
        例外:
        IOException - JARエントリの取得時にIOExceptionがスローされた場合。
        関連項目:
        getJarEntry()