JarFile
public class JarFile
extends ZipFile
java.lang.Object | ||
↳ | java.util.zip.ZipFile | |
↳ | java.util.jar.JarFile |
The JarFile
class is used to read the contents of a jar file from any file that can be opened with java.io.RandomAccessFile
. It extends the class java.util.zip.ZipFile
with support for reading an optional Manifest
entry. The Manifest
can be used to specify meta-information about the jar file and its entries.
Unless otherwise noted, passing a null argument to a constructor or method in this class will cause a NullPointerException
to be thrown. If the verify flag is on when opening a signed jar file, the content of the file is verified against its signature embedded inside the file. Please note that the verification process does not include validating the signer's certificate. A caller should inspect the return value of JarEntry.getCodeSigners()
to further determine if the signature can be trusted.
Summary
Constants | |
---|---|
int | CENATT Central directory (CEN) header internal file attributes field offset. |
int | CENATX Central directory (CEN) header external file attributes field offset. |
int | CENCOM Central directory (CEN) header comment length field offset. |
int | CENCRC Central directory (CEN) header uncompressed file crc-32 value field offset. |
int | CENDSK Central directory (CEN) header disk number start field offset. |
int | CENEXT Central directory (CEN) header extra field length field offset. |
int | CENFLG Central directory (CEN) header encrypt, decrypt flags field offset. |
int | CENHDR Central directory (CEN) header size in bytes (including signature). |
int | CENHOW Central directory (CEN) header compression method field offset. |
int | CENLEN Central directory (CEN) header uncompressed size field offset. |
int | CENNAM Central directory (CEN) header filename length field offset. |
int | CENOFF Central directory (CEN) header LOC header offset field offset. |
long | CENSIG Central directory (CEN) header signature. |
int | CENSIZ Central directory (CEN) header compressed size field offset. |
int | CENTIM Central directory (CEN) header modification time field offset. |
int | CENVEM Central directory (CEN) header version made by field offset. |
int | CENVER Central directory (CEN) header version needed to extract field offset. |
int | ENDCOM End of central directory (END) header zip file comment length field offset. |
int | ENDHDR End of central directory (END) header size in bytes (including signature). |
int | ENDOFF End of central directory (END) header offset for the first CEN header field offset. |
long | ENDSIG End of central directory (END) header signature. |
int | ENDSIZ End of central directory (END) header central directory size in bytes field offset. |
int | ENDSUB End of central directory (END) header number of entries on this disk field offset. |
int | ENDTOT End of central directory (END) header total number of entries field offset. |
int | EXTCRC Extra local (EXT) header uncompressed file crc-32 value field offset. |
int | EXTHDR Extra local (EXT) header size in bytes (including signature). |
int | EXTLEN Extra local (EXT) header uncompressed size field offset. |
long | EXTSIG Extra local (EXT) header signature. |
int | EXTSIZ Extra local (EXT) header compressed size field offset. |
int | LOCCRC Local file (LOC) header uncompressed file crc-32 value field offset. |
int | LOCEXT Local file (LOC) header extra field length field offset. |
int | LOCFLG Local file (LOC) header general purpose bit flag field offset. |
int | LOCHDR Local file (LOC) header size in bytes (including signature). |
int | LOCHOW Local file (LOC) header compression method field offset. |
int | LOCLEN Local file (LOC) header uncompressed size field offset. |
int | LOCNAM Local file (LOC) header filename length field offset. |
long | LOCSIG Local file (LOC) header signature. |
int | LOCSIZ Local file (LOC) header compressed size field offset. |
int | LOCTIM Local file (LOC) header modification time field offset. |
int | LOCVER Local file (LOC) header version needed to extract field offset. |
String | MANIFEST_NAME The JAR manifest file name. |
Inherited constants |
---|
Public constructors | |
---|---|
JarFile(File file) Creates a new | |
JarFile(File file, boolean verify) Creates a new | |
JarFile(File file, boolean verify, int mode) Creates a new | |
JarFile(String name) Creates a new | |
JarFile(String name, boolean verify) Creates a new |
Public methods | |
---|---|
Enumeration<JarEntry> | entries() Returns an enumeration of the zip file entries. |
ZipEntry | getEntry(String name) Returns the |
InputStream | getInputStream(ZipEntry ze) Returns an input stream for reading the contents of the specified zip file entry. |
JarEntry | getJarEntry(String name) Returns the |
Manifest | getManifest() Returns the jar file manifest, or |
Stream<JarEntry> | stream() Returns an ordered |
Inherited methods | |
---|---|
Constants
CENATT
public static final int CENATT
Central directory (CEN) header internal file attributes field offset.
Constant Value: 36 (0x00000024)
CENATX
public static final int CENATX
Central directory (CEN) header external file attributes field offset.
Constant Value: 38 (0x00000026)
CENCOM
public static final int CENCOM
Central directory (CEN) header comment length field offset.
Constant Value: 32 (0x00000020)
CENCRC
public static final int CENCRC
Central directory (CEN) header uncompressed file crc-32 value field offset.
Constant Value: 16 (0x00000010)
CENDSK
public static final int CENDSK
Central directory (CEN) header disk number start field offset.
Constant Value: 34 (0x00000022)
CENEXT
public static final int CENEXT
Central directory (CEN) header extra field length field offset.
Constant Value: 30 (0x0000001e)
CENFLG
public static final int CENFLG
Central directory (CEN) header encrypt, decrypt flags field offset.
Constant Value: 8 (0x00000008)
CENHDR
public static final int CENHDR
Central directory (CEN) header size in bytes (including signature).
Constant Value: 46 (0x0000002e)
CENHOW
public static final int CENHOW
Central directory (CEN) header compression method field offset.
Constant Value: 10 (0x0000000a)
CENLEN
public static final int CENLEN
Central directory (CEN) header uncompressed size field offset.
Constant Value: 24 (0x00000018)
CENNAM
public static final int CENNAM
Central directory (CEN) header filename length field offset.
Constant Value: 28 (0x0000001c)
CENOFF
public static final int CENOFF
Central directory (CEN) header LOC header offset field offset.
Constant Value: 42 (0x0000002a)
CENSIG
public static final long CENSIG
Central directory (CEN) header signature.
Constant Value: 33639248 (0x0000000002014b50)
CENSIZ
public static final int CENSIZ
Central directory (CEN) header compressed size field offset.
Constant Value: 20 (0x00000014)
CENTIM
public static final int CENTIM
Central directory (CEN) header modification time field offset.
Constant Value: 12 (0x0000000c)
CENVEM
public static final int CENVEM
Central directory (CEN) header version made by field offset.
Constant Value: 4 (0x00000004)
CENVER
public static final int CENVER
Central directory (CEN) header version needed to extract field offset.
Constant Value: 6 (0x00000006)
ENDCOM
public static final int ENDCOM
End of central directory (END) header zip file comment length field offset.
Constant Value: 20 (0x00000014)
ENDHDR
public static final int ENDHDR
End of central directory (END) header size in bytes (including signature).
Constant Value: 22 (0x00000016)
ENDOFF
public static final int ENDOFF
End of central directory (END) header offset for the first CEN header field offset.
Constant Value: 16 (0x00000010)
ENDSIG
public static final long ENDSIG
End of central directory (END) header signature.
Constant Value: 101010256 (0x0000000006054b50)
ENDSIZ
public static final int ENDSIZ
End of central directory (END) header central directory size in bytes field offset.
Constant Value: 12 (0x0000000c)
ENDSUB
public static final int ENDSUB
End of central directory (END) header number of entries on this disk field offset.
Constant Value: 8 (0x00000008)
ENDTOT
public static final int ENDTOT
End of central directory (END) header total number of entries field offset.
Constant Value: 10 (0x0000000a)
EXTCRC
public static final int EXTCRC
Extra local (EXT) header uncompressed file crc-32 value field offset.
Constant Value: 4 (0x00000004)
EXTHDR
public static final int EXTHDR
Extra local (EXT) header size in bytes (including signature).
Constant Value: 16 (0x00000010)
EXTLEN
public static final int EXTLEN
Extra local (EXT) header uncompressed size field offset.
Constant Value: 12 (0x0000000c)
EXTSIG
public static final long EXTSIG
Extra local (EXT) header signature.
Constant Value: 134695760 (0x0000000008074b50)
EXTSIZ
public static final int EXTSIZ
Extra local (EXT) header compressed size field offset.
Constant Value: 8 (0x00000008)
LOCCRC
public static final int LOCCRC
Local file (LOC) header uncompressed file crc-32 value field offset.
Constant Value: 14 (0x0000000e)
LOCEXT
public static final int LOCEXT
Local file (LOC) header extra field length field offset.
Constant Value: 28 (0x0000001c)
LOCFLG
public static final int LOCFLG
Local file (LOC) header general purpose bit flag field offset.
Constant Value: 6 (0x00000006)
LOCHDR
public static final int LOCHDR
Local file (LOC) header size in bytes (including signature).
Constant Value: 30 (0x0000001e)
LOCHOW
public static final int LOCHOW
Local file (LOC) header compression method field offset.
Constant Value: 8 (0x00000008)
LOCLEN
public static final int LOCLEN
Local file (LOC) header uncompressed size field offset.
Constant Value: 22 (0x00000016)
LOCNAM
public static final int LOCNAM
Local file (LOC) header filename length field offset.
Constant Value: 26 (0x0000001a)
LOCSIG
public static final long LOCSIG
Local file (LOC) header signature.
Constant Value: 67324752 (0x0000000004034b50)
LOCSIZ
public static final int LOCSIZ
Local file (LOC) header compressed size field offset.
Constant Value: 18 (0x00000012)
LOCTIM
public static final int LOCTIM
Local file (LOC) header modification time field offset.
Constant Value: 10 (0x0000000a)
LOCVER
public static final int LOCVER
Local file (LOC) header version needed to extract field offset.
Constant Value: 4 (0x00000004)
MANIFEST_NAME
public static final String MANIFEST_NAME
The JAR manifest file name.
Constant Value: "META-INF/MANIFEST.MF"
Public constructors
JarFile
public JarFile (File file)
Creates a new JarFile
to read from the specified File
object. The JarFile
will be verified if it is signed.
Parameters | |
---|---|
file | File : the jar file to be opened for reading |
Throws | |
---|---|
IOException | if an I/O error has occurred |
SecurityException | if access to the file is denied by the SecurityManager |
JarFile
public JarFile (File file, boolean verify)
Creates a new JarFile
to read from the specified File
object.
Parameters | |
---|---|
file | File : the jar file to be opened for reading |
verify | boolean : whether or not to verify the jar file if it is signed. |
Throws | |
---|---|
IOException | if an I/O error has occurred |
SecurityException | if access to the file is denied by the SecurityManager. |
JarFile
public JarFile (File file, boolean verify, int mode)
Creates a new JarFile
to read from the specified File
object in the specified mode. The mode argument must be either OPEN_READ or OPEN_READ | OPEN_DELETE.
Parameters | |
---|---|
file | File : the jar file to be opened for reading |
verify | boolean : whether or not to verify the jar file if it is signed. |
mode | int : the mode in which the file is to be opened |
Throws | |
---|---|
IOException | if an I/O error has occurred |
IllegalArgumentException | if the mode argument is invalid |
SecurityException | if access to the file is denied by the SecurityManager |
JarFile
public JarFile (String name)
Creates a new JarFile
to read from the specified file name
. The JarFile
will be verified if it is signed.
Parameters | |
---|---|
name | String : the name of the jar file to be opened for reading |
Throws | |
---|---|
IOException | if an I/O error has occurred |
SecurityException | if access to the file is denied by the SecurityManager |
JarFile
public JarFile (String name, boolean verify)
Creates a new JarFile
to read from the specified file name
.
Parameters | |
---|---|
name | String : the name of the jar file to be opened for reading |
verify | boolean : whether or not to verify the jar file if it is signed. |
Throws | |
---|---|
IOException | if an I/O error has occurred |
SecurityException | if access to the file is denied by the SecurityManager |
Public methods
entries
public Enumeration<JarEntry> entries ()
Returns an enumeration of the zip file entries.
Returns | |
---|---|
Enumeration<JarEntry> | an enumeration of the ZIP file entries |
getEntry
public ZipEntry getEntry (String name)
Returns the ZipEntry
for the given entry name or null
if not found.
Parameters | |
---|---|
name | String : the jar file entry name |
Returns | |
---|---|
ZipEntry | the ZipEntry for the given entry name or null if not found |
Throws | |
---|---|
IllegalStateException | may be thrown if the jar file has been closed |
See also:
getInputStream
public InputStream getInputStream (ZipEntry ze)
Returns an input stream for reading the contents of the specified zip file entry.
Parameters | |
---|---|
ze | ZipEntry : the zip file entry |
Returns | |
---|---|
InputStream | an input stream for reading the contents of the specified zip file entry |
Throws | |
---|---|
ZipException | if a zip file format error has occurred |
IOException | if an I/O error has occurred |
SecurityException | if any of the jar file entries are incorrectly signed. |
IllegalStateException | may be thrown if the jar file has been closed |
getJarEntry
public JarEntry getJarEntry (String name)
Returns the JarEntry
for the given entry name or null
if not found.
Parameters | |
---|---|
name | String : the jar file entry name |
Returns | |
---|---|
JarEntry | the JarEntry for the given entry name or null if not found. |
Throws | |
---|---|
IllegalStateException | may be thrown if the jar file has been closed |
See also:
getManifest
public Manifest getManifest ()
Returns the jar file manifest, or null
if none.
Returns | |
---|---|
Manifest | the jar file manifest, or null if none |
Throws | |
---|---|
IllegalStateException | may be thrown if the jar file has been closed |
IOException | if an I/O error has occurred |
stream
public Stream<JarEntry> stream ()
Returns an ordered Stream
over the ZIP file entries. Entries appear in the Stream
in the order they appear in the central directory of the ZIP file.
Returns | |
---|---|
Stream<JarEntry> | an ordered Stream of entries in this ZIP file |