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 |