Java - Zip Jar JAR File


JAR (Java Archive) is a file format based on the ZIP file format.

It bundles resources, class files, sound files, images, etc. for a Java application or applet.

JAR file is a special kind of a ZIP file.

You can digitally sign the contents of a JAR file to provide security.

Java can use the JAR API to manipulate a JAR file in a Java program.

JAR file can have an optional META-INF directory to contain files and directories containing information about application configuration.

The following table lists the entries in a META-INF directory.

Name Type Purpose
MANIFEST.MF File It contains extension and package related data.
INDEX.LISTFile It contains location information of packages. Class loaders use it to speed up the class searching and loading process.
X.SF File X is the base file name. It stores the signature for the jar file.
X.DSA File X is the base file name. It stores the digital signature of the corresponding signature file.
/services Directory contains all service provider configuration files.


The JDK ships a jar tool to create and manipulate JAR files.

You can create and manipulate a JAR file using the Java API using classes in the java.util.jar package.

JarEntry class inherits from the ZipEntry class; the JarInputStream class inherits from the ZipInputStream class; the JarOutputStream class inherits from the ZipOutputStream class, etc.

The JAR API has classes to deal with a manifest file. The Manifest class represents a manifest file.