- java.lang.Object
- 
- java.util.zip.ZipFile
- 
- java.util.jar.JarFile
 
 
- 
- すべての実装されたインタフェース:
- Closeable,- AutoCloseable
 
 public class JarFile extends ZipFile JarFileクラスは、java.io.RandomAccessFileで開くことができる任意のファイルからjarファイルの内容を読み取るために使います。java.util.zip.ZipFileクラスを拡張し、オプションのManifestエントリの読み取りをサポートし、マルチ・リリースjarファイルの処理をサポートします。Manifestエントリは、jarファイルとそのエントリのメタ情報を指定するために使います。「マルチ・リリースjarファイル」は、"Multi-Release"という名前のメイン属性を持つマニフェストを含むjarファイルです。"base"エントリのセットは、jarファイルのパブリック・インタフェースを構成するpublicまたはprotectedメソッドを含むパブリック・クラスであり、"versioned"エントリのセットが含まれています"META-INF/versions"ディレクトリのサブディレクトリにあります。 バージョン管理されたエントリは、Javaプラットフォームのメジャー・バージョンによってパーティション化されます。 バージョン n、8 < nを"META-INF/versions/{n}"ディレクトリに持つバージョニング済みエントリは、ベース・エントリおよびバージョン番号i(8 < i < n)を持つエントリをオーバーライドします。デフォルトでは、マルチ・リリースjarファイルの JarFileは、マルチ・リリースjarファイルを単純な(unversioned) jarファイルであるかのように処理するように構成されているため、エントリ名は最大でも1つのベース・エントリに関連付けられています。JarFileは、JarFileをJarFile(File, boolean, int, Runtime.Version)コンストラクタとともに作成することによって、マルチ・リリースjarファイルを処理するように構成できます。Runtime.Versionオブジェクトは、バージョニングされたエントリを検索するときに使用される最大バージョンを設定します。 このように構成すると、エントリ名は最大でも1つの基本エントリと0個以上のバージョン管理されたエントリに対応できます。 エントリ名を、バージョンが最大バージョン(getEntry(String)を参照してください)以下の最新のバージョン管理されたエントリに関連付ける検索が必要です。JarFileを利用してJarFileエントリの内容からクラスをロードするクラス・ローダーは、最後の引数に割り当てられた値Runtime.version()を使用してJarFile(File, boolean, int, Runtime.Version)コンストラクタを呼び出すことによって、JarFileを構築する必要があります。 これにより、実行中のJVMのメジャー・バージョンと互換性のあるクラスがマルチ・リリースJARファイルからロードされるようになります。署名付きJARファイルを開いたときに、検証フラグがオンの場合、ファイル内に埋め込まれたその署名に対して、ファイルの内容が検証されます。 検証プロセスには、署名者の証明書の検証は含まれていないことに注意してください。 呼出し側で、 JarEntry.getCodeSigners()の戻り値を検査し、署名が信頼できるかどうかをさらに判断してください。ほかで指定がない場合、 null引数をコンストラクタまたはこのクラスのメソッドへ渡すと、NullPointerExceptionがスローされます。- 実装上の注意:
- APIを使用してJarFile(例えば、コンパイルされたアプリケーションやライブラリの構成を上書きします)を構成できない場合は、2つのSystemプロパティを使用できます。- 
 jdk.util.jar.versionには、負でない整数<= Runtime.version().feature()のString表現である値を割り当てることができます。 この値は、実効ランタイム・バージョンをRuntime.version().feature()を評価することによって得られたデフォルト値以外の値に設定するために使用されます。 実効ランタイム・バージョンは、最後の引数の値がJarFile.runtimeVersion()のときにJarFile(File, boolean, int, Runtime.Version)コンストラクタが使用するバージョンです。
- 
 jdk.util.jar.enableMultiReleaseには、3つのString値true、false、またはforceのいずれかを割り当てることができます。 値true(デフォルト値)は、マルチ・リリースjarファイル処理を有効にします。 値falseは、"Multi-Release"マニフェスト属性を無視して、マルチ・リリースjar処理を無効にします。存在する場合は、マルチ・リリースjarファイルのバージョン管理されたディレクトリを無視します。 さらに、メソッドisMultiRelease()はfalseを返します。 値forceにより、JarFileは構築後にランタイム・バージョン管理に初期化されます。 これはこのコードと事実上同じです:(new JarFile(File, boolean, int, JarFile.runtimeVersion())。
 
- 
 
- 導入されたバージョン:
- 1.2
- 関連項目:
- Manifest,- ZipFile,- JarEntry
 
- 
- 
フィールドのサマリーフィールド 修飾子と型 フィールド 説明 static intCENATTstatic intCENATXstatic intCENCOMstatic intCENCRCstatic intCENDSKstatic intCENEXTstatic intCENFLGstatic intCENHDRstatic intCENHOWstatic intCENLENstatic intCENNAMstatic intCENOFFstatic longCENSIGstatic intCENSIZstatic intCENTIMstatic intCENVEMstatic intCENVERstatic intENDCOMstatic intENDHDRstatic intENDOFFstatic longENDSIGstatic intENDSIZstatic intENDSUBstatic intENDTOTstatic intEXTCRCstatic intEXTHDRstatic intEXTLENstatic longEXTSIGstatic intEXTSIZstatic intLOCCRCstatic intLOCEXTstatic intLOCFLGstatic intLOCHDRstatic intLOCHOWstatic intLOCLENstatic intLOCNAMstatic longLOCSIGstatic intLOCSIZstatic intLOCTIMstatic intLOCVERstatic StringMANIFEST_NAMEJARマニフェスト・ファイルの名前です。- 
クラス java.util.zip.ZipFileで宣言されたフィールドOPEN_DELETE, OPEN_READ
 
- 
 - 
コンストラクタのサマリーコンストラクタ コンストラクタ 説明 JarFile(File file)指定されたFileオブジェクトから読み込む新しいJarFileを作成します。JarFile(File file, boolean verify)指定されたFileオブジェクトから読み込む新しいJarFileを作成します。JarFile(File file, boolean verify, int mode)指定されたモードで指定のFileオブジェクトから読み込む新しいJarFileを作成します。JarFile(File file, boolean verify, int mode, Runtime.Version version)指定されたモードで指定のFileオブジェクトから読み込む新しいJarFileを作成します。JarFile(String name)指定されたファイルnameから読み込む新しいJarFileを作成します。JarFile(String name, boolean verify)指定されたファイルnameから読み込む新しいJarFileを作成します。
 - 
メソッドのサマリーすべてのメソッド 静的メソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 static Runtime.VersionbaseVersion()マルチ・リリースjarファイルのバージョン管理されていない構成を表すバージョンを返します。Enumeration<JarEntry>entries()jarファイル・エントリの列挙型を返します。ZipEntrygetEntry(String name)指定された基本エントリ名のZipEntryを返します。見つからなければnullを返します。InputStreamgetInputStream(ZipEntry ze)指定されたZIPファイル・エントリの内容を読み込む入力ストリームを返します。JarEntrygetJarEntry(String name)指定された基本エントリ名のJarEntryを返します。見つからなければnullを返します。ManifestgetManifest()jarファイルのマニフェストを返します。マニフェストがない場合はnullを返します。Runtime.VersiongetVersion()バージョン管理されたエントリを検索するときに使用される最大バージョンを返します。booleanisMultiRelease()このjarファイルがマルチ・リリースjarファイルであるかどうかを示します。static Runtime.VersionruntimeVersion()マルチ・リリースjarファイルの有効なランタイム・バージョン構成を表すバージョンを返します。Stream<JarEntry>stream()jarファイル・エントリ上に順序付けされたStreamを返します。Stream<JarEntry>versionedStream()バージョン管理されたjarファイル・エントリのStreamを返します。
 
- 
- 
- 
フィールドの詳細- 
LOCSIGpublic static final long LOCSIG - 関連項目:
- 定数フィールド値
 
 - 
EXTSIGpublic static final long EXTSIG - 関連項目:
- 定数フィールド値
 
 - 
CENSIGpublic static final long CENSIG - 関連項目:
- 定数フィールド値
 
 - 
ENDSIGpublic static final long ENDSIG - 関連項目:
- 定数フィールド値
 
 - 
LOCHDRpublic static final int LOCHDR - 関連項目:
- 定数フィールド値
 
 - 
EXTHDRpublic static final int EXTHDR - 関連項目:
- 定数フィールド値
 
 - 
CENHDRpublic static final int CENHDR - 関連項目:
- 定数フィールド値
 
 - 
ENDHDRpublic static final int ENDHDR - 関連項目:
- 定数フィールド値
 
 - 
LOCVERpublic static final int LOCVER - 関連項目:
- 定数フィールド値
 
 - 
LOCFLGpublic static final int LOCFLG - 関連項目:
- 定数フィールド値
 
 - 
LOCHOWpublic static final int LOCHOW - 関連項目:
- 定数フィールド値
 
 - 
LOCTIMpublic static final int LOCTIM - 関連項目:
- 定数フィールド値
 
 - 
LOCCRCpublic static final int LOCCRC - 関連項目:
- 定数フィールド値
 
 - 
LOCSIZpublic static final int LOCSIZ - 関連項目:
- 定数フィールド値
 
 - 
LOCLENpublic static final int LOCLEN - 関連項目:
- 定数フィールド値
 
 - 
LOCNAMpublic static final int LOCNAM - 関連項目:
- 定数フィールド値
 
 - 
LOCEXTpublic static final int LOCEXT - 関連項目:
- 定数フィールド値
 
 - 
EXTCRCpublic static final int EXTCRC - 関連項目:
- 定数フィールド値
 
 - 
EXTSIZpublic static final int EXTSIZ - 関連項目:
- 定数フィールド値
 
 - 
EXTLENpublic static final int EXTLEN - 関連項目:
- 定数フィールド値
 
 - 
CENVEMpublic static final int CENVEM - 関連項目:
- 定数フィールド値
 
 - 
CENVERpublic static final int CENVER - 関連項目:
- 定数フィールド値
 
 - 
CENFLGpublic static final int CENFLG - 関連項目:
- 定数フィールド値
 
 - 
CENHOWpublic static final int CENHOW - 関連項目:
- 定数フィールド値
 
 - 
CENTIMpublic static final int CENTIM - 関連項目:
- 定数フィールド値
 
 - 
CENCRCpublic static final int CENCRC - 関連項目:
- 定数フィールド値
 
 - 
CENSIZpublic static final int CENSIZ - 関連項目:
- 定数フィールド値
 
 - 
CENLENpublic static final int CENLEN - 関連項目:
- 定数フィールド値
 
 - 
CENNAMpublic static final int CENNAM - 関連項目:
- 定数フィールド値
 
 - 
CENEXTpublic static final int CENEXT - 関連項目:
- 定数フィールド値
 
 - 
CENCOMpublic static final int CENCOM - 関連項目:
- 定数フィールド値
 
 - 
CENDSKpublic static final int CENDSK - 関連項目:
- 定数フィールド値
 
 - 
CENATTpublic static final int CENATT - 関連項目:
- 定数フィールド値
 
 - 
CENATXpublic static final int CENATX - 関連項目:
- 定数フィールド値
 
 - 
CENOFFpublic static final int CENOFF - 関連項目:
- 定数フィールド値
 
 - 
ENDSUBpublic static final int ENDSUB - 関連項目:
- 定数フィールド値
 
 - 
ENDTOTpublic static final int ENDTOT - 関連項目:
- 定数フィールド値
 
 - 
ENDSIZpublic static final int ENDSIZ - 関連項目:
- 定数フィールド値
 
 - 
ENDOFFpublic static final int ENDOFF - 関連項目:
- 定数フィールド値
 
 - 
ENDCOMpublic static final int ENDCOM - 関連項目:
- 定数フィールド値
 
 
- 
 - 
コンストラクタの詳細- 
JarFilepublic JarFile(String name) throws IOException 指定されたファイルnameから読み込む新しいJarFileを作成します。JarFileが署名されているかどうかが確認されます。- パラメータ:
- name- 読込みのために開くjarファイルの名前
- 例外:
- IOException- 入出力エラーが発生した場合
- SecurityException- ファイルへのアクセスがSecurityManagerによって拒否された場合
 
 - 
JarFilepublic JarFile(String name, boolean verify) throws IOException 指定されたファイルnameから読み込む新しいJarFileを作成します。- パラメータ:
- name- 読込みのために開くjarファイルの名前
- verify- jarファイルが署名されていることを確認するかどうか。
- 例外:
- IOException- 入出力エラーが発生した場合
- SecurityException- ファイルへのアクセスがSecurityManagerによって拒否された場合
 
 - 
JarFilepublic JarFile(File file) throws IOException 指定されたFileオブジェクトから読み込む新しいJarFileを作成します。JarFileが署名されているかどうかが確認されます。- パラメータ:
- file- 読込みのために開かれるjarファイル
- 例外:
- IOException- 入出力エラーが発生した場合
- SecurityException- ファイルへのアクセスがSecurityManagerによって拒否された場合
 
 - 
JarFilepublic JarFile(File file, boolean verify) throws IOException 指定されたFileオブジェクトから読み込む新しいJarFileを作成します。- パラメータ:
- file- 読込みのために開かれるjarファイル
- verify- jarファイルが署名されていることを確認するかどうか。
- 例外:
- IOException- 入出力エラーが発生した場合
- SecurityException- ファイルへのアクセスがSecurityManagerによって拒否された場合。
 
 - 
JarFilepublic JarFile(File file, boolean verify, int mode) throws IOException 指定されたモードで指定のFileオブジェクトから読み込む新しいJarFileを作成します。 モード引数は、OPEN_READまたはOPEN_READ|OPEN_DELETEである必要があります。- パラメータ:
- file- 読込みのために開かれるjarファイル
- verify- jarファイルが署名されていることを確認するかどうか。
- mode- ファイルが開かれるモード
- 例外:
- IOException- 入出力エラーが発生した場合
- IllegalArgumentException-- mode引数が無効な場合
- SecurityException- ファイルへのアクセスがSecurityManagerによって拒否された場合
- 導入されたバージョン:
- 1.3
 
 - 
JarFilepublic JarFile(File file, boolean verify, int mode, Runtime.Version version) throws IOException 指定されたモードで指定のFileオブジェクトから読み込む新しいJarFileを作成します。 モード引数は、OPEN_READまたはOPEN_READ|OPEN_DELETEである必要があります。 正規表現に変換された後のversion引数は、マルチ・リリースjarファイルを処理するためのJarFileの構成に使用されます。バージョン・パラメータから得られる標準形式は、 Runtime.Version.parse(Integer.toString(n))であり、ここで、nはMath.max(version.feature(), JarFile.baseVersion().feature())です。- パラメータ:
- file- 読込みのために開かれるjarファイル
- verify- jarファイルが署名されていることを確認するかどうか。
- mode- ファイルが開かれるモード
- version- マルチ・リリースjarファイルのリリース・バージョンを指定
- 例外:
- IOException- 入出力エラーが発生した場合
- IllegalArgumentException-- mode引数が無効な場合
- SecurityException- ファイルへのアクセスがSecurityManagerによって拒否された場合
- NullPointerException-- versionが- nullの場合
- 導入されたバージョン:
- 9
 
 
- 
 - 
メソッドの詳細- 
baseVersionpublic static Runtime.Version baseVersion() マルチ・リリースjarファイルのバージョン管理されていない構成を表すバージョンを返します。- 戻り値:
- バージョン管理されていない構成を表すバージョン
- 導入されたバージョン:
- 9
 
 - 
runtimeVersionpublic static Runtime.Version runtimeVersion() マルチ・リリースjarファイルの有効なランタイム・バージョン構成を表すバージョンを返します。デフォルトでは、返される Versionの機能バージョン番号は、Runtime.version()の機能バージョン番号と等しくなります。 ただし、jdk.util.jar.versionプロパティが設定されている場合、返されるVersionはそのプロパティから派生し、機能のバージョン番号は等しくない場合があります。- 戻り値:
- ランタイム・バージョン管理された構成を表すバージョン
- 導入されたバージョン:
- 9
 
 - 
getVersionpublic final Runtime.Version getVersion() バージョン管理されたエントリを検索するときに使用される最大バージョンを返します。この JarFileがマルチ・リリースjarファイルではない、またはそのように処理されるように構成されていない場合、返されるバージョンはbaseVersion()から返されるバージョンと同じになります。- 戻り値:
- 最大バージョン
- 導入されたバージョン:
- 9
 
 - 
isMultiReleasepublic final boolean isMultiRelease() このjarファイルがマルチ・リリースjarファイルであるかどうかを示します。- 戻り値:
- このJarFileが複数リリースのjarファイルの場合はtrue
- 導入されたバージョン:
- 9
 
 - 
getManifestpublic Manifest getManifest() throws IOException jarファイルのマニフェストを返します。マニフェストがない場合はnullを返します。- 戻り値:
- jarファイルのマニフェスト。マニフェストがない場合はnull
- 例外:
- IllegalStateException- jarファイルが閉じられている場合に、スローされることがある
- IOException- 入出力エラーが発生した場合
 
 - 
getJarEntrypublic JarEntry getJarEntry(String name) 指定された基本エントリ名のJarEntryを返します。見つからなければnullを返します。この JarFileがマルチ・リリースjarファイルであり、そのように処理されるように構成されている場合、指定されたエントリ名に関連付けられた最新のバージョン化されたエントリであるJarEntryを検索して返します。 返されるJarEntryは、エントリが存在するnの最大値に対して、文字列"META-INF/versions/{n}/"でプレフィクス付けられた特定の基本エントリ名に対応するバージョン付きエントリです。 そのようなバージョン管理されたエントリが存在しない場合、基本エントリのJarEntryが返されます。そうでない場合は、エントリが見つからない場合はnullが返されます。 バージョンnの初期値は、メソッドgetVersion()によって返される最大バージョンです。- 実装要件:
- この実装はgetEntry(String)を呼び出します。
- パラメータ:
- name- jarファイルのエントリ名
- 戻り値:
- 指定されたエントリ名のJarEntry、またはバージョン管理されたエントリ名、見つからなければnull
- 例外:
- IllegalStateException- jarファイルが閉じられている場合に、スローされることがある
- 関連項目:
- JarEntry
 
 - 
getEntrypublic ZipEntry getEntry(String name) 指定された基本エントリ名のZipEntryを返します。見つからなければnullを返します。この JarFileがマルチ・リリースjarファイルであり、そのように処理されるように構成されている場合、指定されたエントリ名に関連付けられた最新のバージョン化されたエントリであるZipEntryを検索して返します。 返されるZipEntryは、エントリが存在するnの最大値に対して、文字列"META-INF/versions/{n}/"でプレフィクス付けられた特定の基本エントリ名に対応するバージョン付きエントリです。 そのようなバージョン管理されたエントリが存在しない場合、基本エントリのZipEntryが返されます。そうでない場合は、エントリが見つからない場合はnullが返されます。 バージョンnの初期値は、メソッドgetVersion()によって返される最大バージョンです。- オーバーライド:
- getEntry、クラス:- ZipFile
- 実装要件:
- この実装は、対応する基本エントリがない場合でも、リクエストされた名前のバージョン付きエントリを返す可能性があります。 これは、一致するプライベートまたはパッケージ・プライベートのバージョニングされたエントリがある場合に発生します。 サブクラスがこのメソッドをオーバーライドする場合は、オーバーライド・メソッドがsuper.getEntry(name)を呼び出してバージョン化されたすべてのエントリを取得するようにします。
- パラメータ:
- name- jarファイルのエントリ名
- 戻り値:
- 指定されたエントリ名またはバージョン化されたエントリ名のZipEntry、または見つからなければnull
- 例外:
- IllegalStateException- jarファイルが閉じられている場合に、スローされることがある
- 関連項目:
- ZipEntry
 
 - 
entriespublic Enumeration<JarEntry> entries() jarファイル・エントリの列挙型を返します。- オーバーライド:
- entries、クラス:- ZipFile
- 戻り値:
- jarファイル・エントリの列挙型
- 例外:
- IllegalStateException- jarファイルが閉じられている場合に、スローされることがある
 
 - 
streampublic Stream<JarEntry> stream() jarファイル・エントリ上に順序付けされたStreamを返します。 エントリは、Streamに、jarファイルの中央ディレクトリに表示される順序で表示されます。- オーバーライド:
- クラスZipFileのstream
- 戻り値:
- このjarファイル内のエントリの順序付けられたStream
- 例外:
- IllegalStateException- jarファイルが閉じられている場合
- 導入されたバージョン:
- 1.8
 
 - 
versionedStreampublic Stream<JarEntry> versionedStream() バージョン管理されたjarファイル・エントリのStreamを返します。この JarFileがマルチ・リリースjarファイルであり、そのように処理されるように構成されている場合、ストリーム内のエントリは、対応するベース・エントリ名に関連付けられた最新バージョン・エントリです。 バージョン管理された最新のエントリの最大バージョンは、getVersion()によって返されたバージョンです。 返されるストリームには、バージョニングされたエントリとしてのみ存在するエントリが含まれる場合があります。 jarファイルがマルチ・リリースjarファイルでない場合、またはJarFileがマルチ・リリースjarファイルの処理用に構成されていない場合、このメソッドはstream()が返すストリームと同じストリームを返します。- 戻り値:
- バージョン管理されたエントリのストリーム
- 導入されたバージョン:
- 10
 
 - 
getInputStreampublic InputStream getInputStream(ZipEntry ze) throws IOException 指定されたZIPファイル・エントリの内容を読み込む入力ストリームを返します。- オーバーライド:
- getInputStream、クラス:- ZipFile
- パラメータ:
- ze- ZIPファイル・エントリ
- 戻り値:
- 指定されたzipファイル・エントリの内容を読み取るための、入力ストリーム
- 例外:
- ZipException- zipファイル形式エラーが発生した場合
- IOException- 入出力エラーが発生した場合
- SecurityException- jarファイル・エントリが誤って署名された場合。
- IllegalStateException- jarファイルが閉じられている場合に、スローされることがある
 
 
- 
 
-