クラスJarURLConnection
java.lang.Object
java.net.URLConnection
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
- 関連項目:
-
フィールドのサマリー
フィールドクラスで宣言されたフィールド URLConnection
allowUserInteraction, connected, doInput, doOutput, ifModifiedSince, url, useCaches修飾子と型フィールド説明protected booleantrueの場合、このURLは、ユーザーとの対話(認証ダイアログのポップアップなど)を許可することが意味をなすコンテキストで検査されています。protected booleanfalseの場合、この接続オブジェクトは、指定されたURLへの通信リンクを作成していません。protected booleanこの変数は、setDoInputメソッドによって設定されています。protected booleanこの変数は、setDoOutputメソッドによって設定されています。protected long一部のプロトコルでは、特定の時間よりもあとにオブジェクトが更新されていない場合に、オブジェクトのフェッチを省略することができます。protected URLURLは、World Wide Web上にあるリモート・オブジェクトを表します。このリモート・オブジェクトに対して、接続を開きます。protected booleantrueの場合、このプロトコルは、可能な場合はいつでもキャッシュを使用することが許可されています。 -
コンストラクタのサマリー
コンストラクタ -
メソッドのサマリー
修飾子と型メソッド説明接続で使うURLがJARファイル・エントリを指す場合、この接続用のAttributesオブジェクトを返します。そうでない場合はnullを返します。この接続のURLがJARファイル・エントリを指す場合は証明書オブジェクトを返し、それ以外の場合はnullを返します。この接続のエントリ名を返します。この接続のJARエントリ・オブジェクトが存在する場合にそれを返します。abstract JarFileこの接続のJARファイルを返します。この接続で使うJARファイルのURLを返します。この接続で使うJARファイルの主要なAttributesを返します。この接続のManifestが存在する場合はそれを、存在しない場合はnullを、それぞれ返します。クラスで宣言されたメソッド URLConnection
addRequestProperty, connect, getAllowUserInteraction, getConnectTimeout, getContent, getContent, getContentEncoding, getContentLength, getContentLengthLong, getContentType, getDate, getDefaultAllowUserInteraction, getDefaultRequestProperty, getDefaultUseCaches, getDefaultUseCaches, getDoInput, getDoOutput, getExpiration, getFileNameMap, getHeaderField, getHeaderField, getHeaderFieldDate, getHeaderFieldInt, getHeaderFieldKey, getHeaderFieldLong, getHeaderFields, getIfModifiedSince, getInputStream, getLastModified, getOutputStream, getPermission, getReadTimeout, getRequestProperties, getRequestProperty, getURL, getUseCaches, guessContentTypeFromName, guessContentTypeFromStream, setAllowUserInteraction, setConnectTimeout, setContentHandlerFactory, setDefaultAllowUserInteraction, setDefaultRequestProperty, setDefaultUseCaches, setDefaultUseCaches, setDoInput, setDoOutput, setFileNameMap, setIfModifiedSince, setReadTimeout, setRequestProperty, setUseCaches, toString修飾子と型メソッド説明voidaddRequestProperty(String key, String value) キーと値のペアで指定された一般要求プロパティを追加します。abstract voidconnect()このURLが参照するリソースへの通信リンクを確立します(通信リンクが確立されていない場合)。booleanこのオブジェクトのallowUserInteractionフィールドの値を返します。int接続タイム・アウトの設定を返します。このURL接続のコンテンツを取得します。getContent(Class<?>[] classes) このURL接続のコンテンツを取得します。content-encodingヘッダー・フィールドの値を返します。intcontent-lengthヘッダー・フィールドの値を返します。longcontent-lengthヘッダー・フィールドの値をlong型として返します。content-typeヘッダー・フィールドの値を返します。longgetDate()dateヘッダー・フィールドの値を返します。static booleanallowUserInteractionフィールドのデフォルト値を返します。static String非推奨。URLConnectionの適切なインスタンスを取得した後は、インスタンス固有のgetRequestPropertyメソッドを使用する必要があります。booleanURLConnectionのuseCachesフラグのデフォルト値を返します。static booleangetDefaultUseCaches(String protocol) 指定されたプロトコルのuseCachesフラグのデフォルト値を返します。booleanこのURLConnectionのdoInputフラグの値を返します。booleanこのURLConnectionのdoOutputフラグの値を返します。longexpiresヘッダー・フィールドの値を返します。static FileNameMapデータ・ファイルからファイル名マップ(mimetable)をロードします。getHeaderField(int n) n番目のヘッダー・フィールドの値を返します。getHeaderField(String name) 指定されたヘッダー・フィールドの値を返します。longgetHeaderFieldDate(String name, long defaultValue) 指定されたフィールドを日付として構文解析した値を返します。intgetHeaderFieldInt(String name, int defaultValue) 指定されたフィールドを数値として構文解析した値を返します。getHeaderFieldKey(int n) n番目のヘッダー・フィールドのキーを返します。longgetHeaderFieldLong(String name, long defaultValue) 指定されたフィールドを数値として構文解析した値を返します。ヘッダー・フィールドの変更不可能なマップを返します。longこのオブジェクトのifModifiedSinceフィールドの値を返します。この接続からの入力を受け取る入力ストリームを返します。longlast-modifiedヘッダー・フィールドの値を返します。この接続に書込みを行う出力ストリームを返します。削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。セキュリティ・マネージャがサポートされなくなったため、リソースへのアクセスの制御に権限を使用できなくなります。int読取りタイム・アウトの設定を返します。このオプションが無効(タイム・アウトが無限)の場合は0を返します。この接続の一般要求プロパティの変更不可能なマップを返します。getRequestProperty(String key) この接続の指定された一般要求プロパティの値を返します。getURL()このURLConnectionのURLフィールドの値を返します。booleanこのURLConnectionのuseCachesフィールドの値を返します。static StringguessContentTypeFromName(String fname) URLの指定された「ファイル」コンポーネントを基に、オブジェクトのコンテンツ型を推測します。static String入力ストリームの先頭の文字を基に、入力ストリームの種類の決定を試みます。voidsetAllowUserInteraction(boolean allowuserinteraction) このURLConnectionのallowUserInteractionフィールドの値を設定します。voidsetConnectTimeout(int timeout) このURLConnectionが参照するリソースへの通信リンクのオープン時に、指定されたミリ秒単位のタイム・アウト値が使用されるように設定します。static voidアプリケーションのContentHandlerFactoryを設定します。static voidsetDefaultAllowUserInteraction(boolean defaultallowuserinteraction) 将来に作成されるすべてのURLConnectionオブジェクトのallowUserInteractionフィールドについて、デフォルト値を指定された値に設定します。static voidsetDefaultRequestProperty(String key, String value) 非推奨。URLConnectionの適切なインスタンスを取得した後は、インスタンス固有のsetRequestPropertyメソッドを使用する必要があります。voidsetDefaultUseCaches(boolean defaultusecaches) useCachesフィールドのデフォルト値を、指定された値に設定します。static voidsetDefaultUseCaches(String protocol, boolean defaultVal) 指定されたプロトコルのuseCachesフィールドのデフォルト値を、指定された値に設定します。voidsetDoInput(boolean doinput) このURLConnectionのdoInputフィールドの値を指定された値に設定します。voidsetDoOutput(boolean dooutput) このURLConnectionのdoOutputフィールドの値を指定された値に設定します。static voidFileNameMapを設定します。voidsetIfModifiedSince(long ifmodifiedsince) このURLConnectionのifModifiedSinceフィールドの値を指定された値に設定します。voidsetReadTimeout(int timeout) 読取りタイム・アウトを、指定されたミリ秒単位のタイム・アウトに設定します。voidsetRequestProperty(String key, String value) 一般要求プロパティを設定します。voidsetUseCaches(boolean usecaches) このURLConnectionのuseCachesフィールドの値を指定された値に設定します。toString()このURL接続のString表現を返します。クラスオブジェクトで宣言されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait修飾子と型メソッド説明protected Objectclone()このオブジェクトのコピーを作成して、返します。booleanこのオブジェクトと他のオブジェクトが等しいかどうかを示します。protected voidfinalize()削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。最終決定は非推奨であり、将来のリリースで削除される可能性があります。final Class<?> getClass()このObjectの実行時クラスを返します。inthashCode()このオブジェクトに対するハッシュ・コード値を返します。final voidnotify()このオブジェクトのモニターで待機中のスレッドを1つ再開します。final voidこのオブジェクトのモニターで待機中のすべてのスレッドを再開します。final voidwait()現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。final voidwait(long timeoutMillis) 現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。final voidwait(long timeoutMillis, int nanos) 現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
-
フィールド詳細
-
jarFileURLConnection
protected URLConnection jarFileURLConnection接続が開始された場合のJARファイルURLへの接続。 これはconnectによって設定されるべきです。
-
-
コンストラクタの詳細
-
JarURLConnection
protected JarURLConnection(URL url) throws MalformedURLException 指定したURLに新しいJarURLConnectionを作成します。- パラメータ:
url- URL- スロー:
MalformedURLException−指定文字列に有効なプロトコルが見つからない場合、または文字列を解析できない場合。
-
-
メソッドの詳細
-
getJarFileURL
-
getEntryName
public String getEntryName()この接続のエントリ名を返します。 この接続に対応するJARファイルURLが、JARファイル・エントリではなくJARファイルを指している場合、このメソッドはnullを返します。- 戻り値:
- この接続で使うエントリ名(エントリがある場合)。
-
getJarFile
public abstract JarFile getJarFile() throws IOExceptionこの接続のJARファイルを返します。- 戻り値:
- この接続のJARファイル。 この接続がJARファイルのエントリへの接続である場合には、JARファイル・オブジェクトが返される
- スロー:
IOException−この接続のJARファイルへの接続試行中にIOExceptionが発生した場合。- 関連項目:
-
getManifest
public Manifest getManifest() throws IOExceptionこの接続のManifestが存在する場合はそれを、存在しない場合はnullを、それぞれ返します。- 戻り値:
- この接続のJARファイル・オブジェクトに対応するマニフェスト・オブジェクト。
- スロー:
IOException- この接続のJARファイルの取得時にIOExceptionがスローされた場合。- 関連項目:
-
getJarEntry
public JarEntry getJarEntry() throws IOExceptionこの接続のJARエントリ・オブジェクトが存在する場合にそれを返します。 この接続に対応するJARファイルURLが、JARファイル・エントリではなくJARファイルを指している場合、このメソッドはnullを返します。- 戻り値:
- この接続のJARエントリ・オブジェクト。この接続のJAR URLがJARファイルを指している場合はnull。
- スロー:
IOException- この接続のJARファイルの取得時にIOExceptionがスローされた場合。- 関連項目:
-
getAttributes
public Attributes getAttributes() throws IOException接続で使うURLがJARファイル・エントリを指す場合、この接続用のAttributesオブジェクトを返します。そうでない場合はnullを返します。- 戻り値:
- この接続のURLがJARファイル・エントリを指している場合はこの接続のAttributesオブジェクト、そうでない場合はnull。
- スロー:
IOException- JARエントリの取得時にIOExceptionがスローされた場合。- 関連項目:
-
getMainAttributes
public Attributes getMainAttributes() throws IOExceptionこの接続で使うJARファイルの主要なAttributesを返します。- 戻り値:
- この接続で使うJARファイルの主要なAttributes。
- スロー:
IOException−マニフェストの取得時にIOExceptionがスローされた場合。- 関連項目:
-
getCertificates
public Certificate[] getCertificates() throws IOExceptionこの接続のURLがJARファイル・エントリを指す場合は証明書オブジェクトを返し、それ以外の場合はnullを返します。 このメソッドは、入力ストリームを最後まで読みとって、接続が完全に検証されないかぎり呼び出せません。 そうでない場合は、このメソッドはnullを返します。返される証明書の配列は、このエントリを証明するために使用されたすべての署名者証明書から構成されます。 各署名者証明書のあとにはそれをサポートする証明書チェーンが続きます(空である可能性もある)。 それぞれの署名者証明書およびその証明書がサポートする証明書チェーンは、下位から上位の順に並べられます(つまり、署名者の証明書が最初で、(ルートの)証明書発行局が最後)。
- APIのノート:
- 検証プロセスには、コード署名者の検証または信頼の確立は含まれません。 コール元は、
CertPathValidatorを使用して各署名者の証明書チェーンを検証したり、署名者が署名したエントリを信頼するかどうかを決定するなど、追加のチェックを実行する必要があります。 - 戻り値:
- この接続のURLがJARファイル・エントリを指している場合は、この接続の証明書オブジェクト。それ以外の場合はnull。
- スロー:
IOException- JARエントリの取得時にIOExceptionがスローされた場合。- 関連項目:
-