JarFile

open class JarFile : ZipFile
kotlin.Any
   ↳ 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
static Int

static Int

static Int

static Int

static Int

static Int

static Int

static Int

static Int

static Int

static Int

static Int

static Long

static Int

static Int

static Int

static Int

static Int

static Int

static Int

static Long

static Int

static Int

static Int

static Int

static Int

static Int

static Long

static Int

static Int

static Int

static Int

static Int

static Int

static Int

static Int

static Long

static Int

static Int

static Int

static String

The JAR manifest file name.

Inherited constants
Public constructors
<init>(name: String!)

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

<init>(name: String!, verify: Boolean)

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

<init>(file: File!)

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

<init>(file: File!, verify: Boolean)

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

<init>(file: File!, verify: Boolean, mode: Int)

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

Public methods
open JarEntry!

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

open ZipEntry!
getEntry(name: String!)

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

open Manifest!

Returns the jar file manifest, or null if none.

open Stream<JarEntry!>!

Return an ordered Stream over the ZIP file entries.

open InputStream!

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

open Enumeration<JarEntry!>!

Returns an enumeration of the zip file entries.

Inherited functions

Constants

CENATT

static val CENATT: Int
Value: 36

CENATX

static val CENATX: Int
Value: 38

CENCOM

static val CENCOM: Int
Value: 32

CENCRC

static val CENCRC: Int
Value: 16

CENDSK

static val CENDSK: Int
Value: 34

CENEXT

static val CENEXT: Int
Value: 30

CENFLG

static val CENFLG: Int
Value: 8

CENHDR

static val CENHDR: Int
Value: 46

CENHOW

static val CENHOW: Int
Value: 10

CENLEN

static val CENLEN: Int
Value: 24

CENNAM

static val CENNAM: Int
Value: 28

CENOFF

static val CENOFF: Int
Value: 42

CENSIG

static val CENSIG: Long
Value: 33639248L

CENSIZ

static val CENSIZ: Int
Value: 20

CENTIM

static val CENTIM: Int
Value: 12

CENVEM

static val CENVEM: Int
Value: 4

CENVER

static val CENVER: Int
Value: 6

ENDCOM

static val ENDCOM: Int
Value: 20

ENDHDR

static val ENDHDR: Int
Value: 22

ENDOFF

static val ENDOFF: Int
Value: 16

ENDSIG

static val ENDSIG: Long
Value: 101010256L

ENDSIZ

static val ENDSIZ: Int
Value: 12

ENDSUB

static val ENDSUB: Int
Value: 8

ENDTOT

static val ENDTOT: Int
Value: 10

EXTCRC

static val EXTCRC: Int
Value: 4

EXTHDR

static val EXTHDR: Int
Value: 16

EXTLEN

static val EXTLEN: Int
Value: 12

EXTSIG

static val EXTSIG: Long
Value: 134695760L

EXTSIZ

static val EXTSIZ: Int
Value: 8

LOCCRC

static val LOCCRC: Int
Value: 14

LOCEXT

static val LOCEXT: Int
Value: 28

LOCFLG

static val LOCFLG: Int
Value: 6

LOCHDR

static val LOCHDR: Int
Value: 30

LOCHOW

static val LOCHOW: Int
Value: 8

LOCLEN

static val LOCLEN: Int
Value: 22

LOCNAM

static val LOCNAM: Int
Value: 26

LOCSIG

static val LOCSIG: Long
Value: 67324752L

LOCSIZ

static val LOCSIZ: Int
Value: 18

LOCTIM

static val LOCTIM: Int
Value: 10

LOCVER

static val LOCVER: Int
Value: 4

MANIFEST_NAME

static val MANIFEST_NAME: String

The JAR manifest file name.

Value: "META-INF/MANIFEST.MF"

Public constructors

<init>

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

<init>

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 String!: whether or not to verify the jar file if it is signed.
Exceptions
IOException if an I/O error has occurred
SecurityException if access to the file is denied by the SecurityManager

<init>

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

<init>

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 File!: whether or not to verify the jar file if it is signed.
Exceptions
IOException if an I/O error has occurred
SecurityException if access to the file is denied by the SecurityManager.

<init>

added in API level 1.3
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 File!: whether or not to verify the jar file if it is signed.
mode File!: the mode in which the file is to be opened
Exceptions
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

Public methods

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
IllegalStateException may be thrown if the jar 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
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
IllegalStateException may be thrown if the jar file has been closed
IOException if an I/O error has occurred

stream

added in API level 26
open fun stream(): Stream<JarEntry!>!

Return 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.
Requires API level 26 (Android 8.0, Oreo) Requires API level 26 (Android 8.0, Oreo)

Return
Stream<JarEntry!>!: an ordered Stream of entries in this ZIP file
Exceptions
IllegalStateException if the zip 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 ZipEntry!: 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
ZipException if a zip file format error has occurred
IOException if an I/O error has occurred
IllegalStateException may be thrown if the jar file has been closed
SecurityException if any of the jar file entries are incorrectly signed.

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
IllegalStateException if the zip file has been closed