open class JarFile : ZipFile

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
static Int

Central directory (CEN) header internal file attributes field offset.

static Int

Central directory (CEN) header external file attributes field offset.

static Int

Central directory (CEN) header comment length field offset.

static Int

Central directory (CEN) header uncompressed file crc-32 value field offset.

static Int

Central directory (CEN) header disk number start field offset.

static Int

Central directory (CEN) header extra field length field offset.

static Int

Central directory (CEN) header encrypt, decrypt flags field offset.

static Int

Central directory (CEN) header size in bytes (including signature).

static Int

Central directory (CEN) header compression method field offset.

static Int

Central directory (CEN) header uncompressed size field offset.

static Int

Central directory (CEN) header filename length field offset.

static Int

Central directory (CEN) header LOC header offset field offset.

static Long

Central directory (CEN) header signature.

static Int

Central directory (CEN) header compressed size field offset.

static Int

Central directory (CEN) header modification time field offset.

static Int

Central directory (CEN) header version made by field offset.

static Int

Central directory (CEN) header version needed to extract field offset.

static Int

End of central directory (END) header zip file comment length field offset.

static Int

End of central directory (END) header size in bytes (including signature).

static Int

End of central directory (END) header offset for the first CEN header field offset.

static Long

End of central directory (END) header signature.

static Int

End of central directory (END) header central directory size in bytes field offset.

static Int

End of central directory (END) header number of entries on this disk field offset.

static Int

End of central directory (END) header total number of entries field offset.

static Int

Extra local (EXT) header uncompressed file crc-32 value field offset.

static Int

Extra local (EXT) header size in bytes (including signature).

static Int

Extra local (EXT) header uncompressed size field offset.

static Long

Extra local (EXT) header signature.

static Int

Extra local (EXT) header compressed size field offset.

static Int

Local file (LOC) header uncompressed file crc-32 value field offset.

static Int

Local file (LOC) header extra field length field offset.

static Int

Local file (LOC) header general purpose bit flag field offset.

static Int

Local file (LOC) header size in bytes (including signature).

static Int

Local file (LOC) header compression method field offset.

static Int

Local file (LOC) header uncompressed size field offset.

static Int

Local file (LOC) header filename length field offset.

static Long

Local file (LOC) header signature.

static Int

Local file (LOC) header compressed size field offset.

static Int

Local file (LOC) header modification time field offset.

static Int

Local file (LOC) header version needed to extract field offset.

static String

The JAR manifest file name.

Inherited constants

From class ZipFile

Int OPEN_DELETE

Mode flag to open a zip file and mark it for deletion. The file will be deleted some time between the moment that it is opened and the moment that it is closed, but its contents will remain accessible via the ZipFile object until either the close method is invoked or the virtual machine exits.

Int OPEN_READ

Mode flag to open a zip file for reading.

Public constructors

JarFile(file: File!)

Creates a new JarFile to read from the specified File object.

JarFile(file: File!, verify: Boolean)

Creates a new JarFile to read from the specified File object.

JarFile(file: File!, verify: Boolean, mode: Int)

Creates a new JarFile to read from the specified File object in the specified mode.

JarFile(name: String!)

Creates a new JarFile to read from the specified file name.

JarFile(name: String!, verify: Boolean)

Creates a new JarFile to read from the specified file name.

Public methods
open Enumeration<JarEntry!>!

entries()

Returns an enumeration of the zip file entries.

open ZipEntry!

getEntry(name: String!)

Returns the ZipEntry for the given entry name or null if not found.

open InputStream!

Returns an input stream for reading the contents of the specified zip file entry.

open JarEntry!

Returns the JarEntry for the given entry name or null if not found.

open Manifest!

Returns the jar file manifest, or null if none.

open Stream<JarEntry!>!

stream()

Returns an ordered Stream over the ZIP file entries.

Inherited functions

From class ZipFile

Unit close()

Closes the ZIP file.

Closing this ZIP file will close all of the input streams previously returned by invocations of the getInputStream method.

String! getComment()

Returns the zip file comment, or null if none.

String! getName()

Returns the path name of the ZIP file.

Int size()

Returns the number of entries in the ZIP file.

Constants

CENATT

static val CENATT: Int

Central directory (CEN) header internal file attributes field offset.

Value: 36

CENATX

static val CENATX: Int

Central directory (CEN) header external file attributes field offset.

Value: 38

CENCOM

static val CENCOM: Int

Central directory (CEN) header comment length field offset.

Value: 32

CENCRC

static val CENCRC: Int

Central directory (CEN) header uncompressed file crc-32 value field offset.

Value: 16

CENDSK

static val CENDSK: Int

Central directory (CEN) header disk number start field offset.

Value: 34

CENEXT

static val CENEXT: Int

Central directory (CEN) header extra field length field offset.

Value: 30

CENFLG

static val CENFLG: Int

Central directory (CEN) header encrypt, decrypt flags field offset.

Value: 8

CENHDR

static val CENHDR: Int

Central directory (CEN) header size in bytes (including signature).

Value: 46

CENHOW

static val CENHOW: Int

Central directory (CEN) header compression method field offset.

Value: 10

CENLEN

static val CENLEN: Int

Central directory (CEN) header uncompressed size field offset.

Value: 24

CENNAM

static val CENNAM: Int

Central directory (CEN) header filename length field offset.

Value: 28

CENOFF

static val CENOFF: Int

Central directory (CEN) header LOC header offset field offset.

Value: 42

CENSIG

static val CENSIG: Long

Central directory (CEN) header signature.

Value: 33639248L

CENSIZ

static val CENSIZ: Int

Central directory (CEN) header compressed size field offset.

Value: 20

CENTIM

static val CENTIM: Int

Central directory (CEN) header modification time field offset.

Value: 12

CENVEM

static val CENVEM: Int

Central directory (CEN) header version made by field offset.

Value: 4

CENVER

static val CENVER: Int

Central directory (CEN) header version needed to extract field offset.

Value: 6

ENDCOM

static val ENDCOM: Int

End of central directory (END) header zip file comment length field offset.

Value: 20

ENDHDR

static val ENDHDR: Int

End of central directory (END) header size in bytes (including signature).

Value: 22

ENDOFF

static val ENDOFF: Int

End of central directory (END) header offset for the first CEN header field offset.

Value: 16

ENDSIG

static val ENDSIG: Long

End of central directory (END) header signature.

Value: 101010256L

ENDSIZ

static val ENDSIZ: Int

End of central directory (END) header central directory size in bytes field offset.

Value: 12

ENDSUB

static val ENDSUB: Int

End of central directory (END) header number of entries on this disk field offset.

Value: 8

ENDTOT

static val ENDTOT: Int

End of central directory (END) header total number of entries field offset.

Value: 10

EXTCRC

static val EXTCRC: Int

Extra local (EXT) header uncompressed file crc-32 value field offset.

Value: 4

EXTHDR

static val EXTHDR: Int

Extra local (EXT) header size in bytes (including signature).

Value: 16

EXTLEN

static val EXTLEN: Int

Extra local (EXT) header uncompressed size field offset.

Value: 12

EXTSIG

static val EXTSIG: Long

Extra local (EXT) header signature.

Value: 134695760L

EXTSIZ

static val EXTSIZ: Int

Extra local (EXT) header compressed size field offset.

Value: 8

LOCCRC

static val LOCCRC: Int

Local file (LOC) header uncompressed file crc-32 value field offset.

Value: 14

LOCEXT

static val LOCEXT: Int

Local file (LOC) header extra field length field offset.

Value: 28

LOCFLG

static val LOCFLG: Int

Local file (LOC) header general purpose bit flag field offset.

Value: 6

LOCHDR

static val LOCHDR: Int

Local file (LOC) header size in bytes (including signature).

Value: 30

LOCHOW

static val LOCHOW: Int

Local file (LOC) header compression method field offset.

Value: 8

LOCLEN

static val LOCLEN: Int

Local file (LOC) header uncompressed size field offset.

Value: 22

LOCNAM

static val LOCNAM: Int

Local file (LOC) header filename length field offset.

Value: 26

LOCSIG

static val LOCSIG: Long

Local file (LOC) header signature.

Value: 67324752L

LOCSIZ

static val LOCSIZ: Int

Local file (LOC) header compressed size field offset.

Value: 18

LOCTIM

static val LOCTIM: Int

Local file (LOC) header modification time field offset.

Value: 10

LOCVER

static val LOCVER: Int

Local file (LOC) header version needed to extract field offset.

Value: 4

MANIFEST_NAME

static val MANIFEST_NAME: String

The JAR manifest file name.

Value: "META-INF/MANIFEST.MF"

Public constructors

JarFile

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
Exceptions
java.io.IOException if an I/O error has occurred
java.lang.SecurityException if access to the file is denied by the SecurityManager

JarFile

JarFile(
    file: File!,
    verify: Boolean)

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.
Exceptions
java.io.IOException if an I/O error has occurred
java.lang.SecurityException if access to the file is denied by the SecurityManager.

JarFile

JarFile(
    file: File!,
    verify: Boolean,
    mode: Int)

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
Exceptions
java.io.IOException if an I/O error has occurred
java.lang.IllegalArgumentException if the mode argument is invalid
java.lang.SecurityException if access to the file is denied by the SecurityManager

JarFile

JarFile(name: String!)

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
Exceptions
java.io.IOException if an I/O error has occurred
java.lang.SecurityException if access to the file is denied by the SecurityManager

JarFile

JarFile(
    name: String!,
    verify: Boolean)

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.
Exceptions
java.io.IOException if an I/O error has occurred
java.lang.SecurityException if access to the file is denied by the SecurityManager

Public methods

entries

open fun entries(): Enumeration<JarEntry!>!

Returns an enumeration of the zip file entries.

Return
Enumeration<JarEntry!>! an enumeration of the ZIP file entries
Exceptions
java.lang.IllegalStateException if the zip file has been closed

getEntry

open fun getEntry(name: String!): ZipEntry!

Returns the ZipEntry for the given entry name or null if not found.

Parameters
name String!: the jar file entry name
Return
ZipEntry! the ZipEntry for the given entry name or null if not found
Exceptions
java.lang.IllegalStateException may be thrown if the jar file has been closed

getInputStream

open fun getInputStream(ze: ZipEntry!): InputStream!

Returns an input stream for reading the contents of the specified zip file entry.

Parameters
entry the zip file entry
ze ZipEntry!: the zip file entry
Return
InputStream! an input stream for reading the contents of the specified zip file entry
Exceptions
java.io.IOException if an I/O error has occurred
java.lang.IllegalStateException may be thrown if the jar file has been closed
java.util.zip.ZipException if a zip file format error has occurred
java.lang.SecurityException if any of the jar file entries are incorrectly signed.

getJarEntry

open fun getJarEntry(name: String!): JarEntry!

Returns the JarEntry for the given entry name or null if not found.

Parameters
name String!: the jar file entry name
Return
JarEntry! the JarEntry for the given entry name or null if not found.
Exceptions
java.lang.IllegalStateException may be thrown if the jar file has been closed

getManifest

open fun getManifest(): Manifest!

Returns the jar file manifest, or null if none.

Return
Manifest! the jar file manifest, or null if none
Exceptions
java.io.IOException if an I/O error has occurred
java.lang.IllegalStateException may be thrown if the jar file has been closed

stream

open fun stream(): Stream<JarEntry!>!

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.

Return
Stream<JarEntry!>! an ordered Stream of entries in this ZIP file
Exceptions
java.lang.IllegalStateException if the zip file has been closed

Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Last updated 2026-02-13 UTC.