TheServerSide.com.com

JAR file (Java Archive)

By Cameron McKenzie

What is a JAR file (Java Archive)?

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.

Contents of a JAR file

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.

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.

Executable JAR files

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.

Java Archive apps

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:

JAR file openers

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

The Java JAR command

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 a 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

15 Oct 2021

All Rights Reserved, Copyright 2000 - 2024, TechTarget | Read our Privacy Statement