Definition

JAR file (Java Archive)

Contributor(s): Sree Anand, Ellen C. Eggers and Cameron McKenzie

A Java Archive, or JAR file, contains all of the various components that make up a self-contained, executable Java application, deployable Java applet or, most commonly, a Java library to which any Java Runtime Environment can link.

There are two key benefits of using a JAR file. The first is the ability to aggregate hundreds, if not thousands, of different files that make up an application. The second is the means to compress all of the contained files, greatly reducing the size of the application, and making it easier to move the JAR file over a network and between environments.

What a JAR file contains

Java applications and libraries can contain hundreds of different files, including compiled Java source code, a manifest file, XML-based configuration data, JSON-based data files, images, sound clips and even security certificates. A JAR file is simply an aggregation of all of these resources into a single, compressed file.

Since a JAR file uses a standard compression algorithm, opening a JAR file is as simple as changing its extension from .jar to .zip and extracting the contents using a standard decompression tool.

Opening a JAR file and exploring the contents
Opening a JAR file and exploring the contents

Although optional, it is recommended that JAR files contain a manifest file named MANIFEST.MF in a folder named META-INF. This manifest file contains metadata about the JAR, including properties such as the code version, the primary author of the code and the name of the organization that maintains the code. For an executable JAR file that contains a stand-alone application, a Main-Class attribute should exist that provides the name of the first piece of code for the Java Runtime Environment (JRE) to invoke when the application is run.

Manifest file MANIFEST.MF for the open source hibernate3.jar file
Manifest file MANIFEST.MF for the open source hibernate3.jar file

Common JAR file utility operations

Each installation of the Java Development Kit (JDK) includes a JAR utility (named jar.sh on Unix and jar.exe on Windows) that provides a variety of helpful functions for working with JAR files, including the ability to:

  • create new JAR files with a manifest file;
  • extract all of the contents of a JAR file onto the file system;
  • update an existing JAR file by adding files to it; and
  • update a JAR file's existing manifest file

How to open a JAR file

To open a JAR file and extract the contents to the file system, you must use two JAR utility switches, namely, "x" to extract the contents, and "f" to specify the name of the JAR file being opened. The utility then extracts the contents to the file system.

For example, the JAR utility command to extract the contents of a JAR file named my_java_app.jar looks as follows:

>jar xf C:\techtarget\my_java_app.jar

How to create a JAR file

The JAR utility can also help create a JAR file. To create a JAR file named tss.jar that includes two files named Tech.class and Target.class, the command looks as follows:

>jar cf tss.jar Tech.class Target.class

How to run executable JAR files

Any Java code that has a method called "main" is considered to be a stand-alone application. For example, the code below has a main method that triggers a dialog box to pop up that says "Hello World" in it.

package theserverside;
import javax.swing.*;

public class HelloWorldApplication {        

  public static void main(String args[]){

    String title = "Executable Java Application";

    String message = "Hello World!";

    JOptionPane.showMessageDialog(null, message, title, 1);

  }

}

If this code was packaged in a JAR file, the JAR file would execute it because it contains code that can be run directly by the JRE. However, to run the executable JAR file, you don't use the JAR utility of the JDK. Instead, you use the special java.exe utility, and, thus, the name of the jar file is specified.

The syntax to run an executable JAR file named my_java_app.jar using the JDK's java.exe utility is as follows:

>java.exe -jar my_java_app.jar

This was last updated in January 2017

Continue Reading About JAR file (Java Archive)

PRO+

Content

Find more PRO+ content and other member only offers, here.

Join the conversation

1 comment

Send me notifications when other members comment.

By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy

Please create a username to comment.

What are the worst classpath issues you have encountered due to your applications having conflicting JAR files?
Cancel

-ADS BY GOOGLE

File Extensions and File Formats

Powered by:

SearchCloudApplications

SearchSoftwareQuality

SearchFinancialApplications

SearchSAP

SearchManufacturingERP

Close