Introduction to JAR File Format

Introduction

 
This article explains the JAR format used in Java. It explains what a JAR is, its advantages, how to create them, how to view the components and how to extract files from JAR files.
 

What is JAR?

 
A JAR (Java ARchive) file is a compressed file that contains class, sound, image and textual files for a Java application in a single file. The JAR format is based on the popular zip file format and is somewhat comparable to the Unix tar file. When we are using the Java Development Kit (JDK) a JAR file included in it is provided by Sun Microsystems. A Java application can be started with a set of JAR files for use during execution. An off-the-shelf open-source package can be delivered as a JAR file and run with XML data.
 
Java classes are packaged and distributed in JAR format. It is a compression/decompression format provided by Sun Microsystems for compression and decompression of Java classes.
 
Sun Microsystems provides all the classes of the core Java library through a JAR file name "rt.jar" (it is contained in the "C:\Program Files\Java\jdk1.7.0_25\jre\lib" folder).
 
Advantages of using JAR files
 
The JAR File format provides the following benefits.
  • Security
          By providing a digital signature in our JAR File, we enhance the security of Java files; as the authorized user who recognize our signature can access the files.
  • Portability
          It is easy to handle, create, maintain, update, etcetera.
  • Compression
          It is basically used to compress the size of the files. Suppose we are developing a software that contains many files so we need a tool to compress the size of this files
so the JAR tool is used to compress the size.
  • Decrease Download Time
          If we are using a JAR file then we need to download only one single file hence it reduces the download time since we don't need to download multiple files.
  • Packaging
          Using this tool, we bundled our various types of files (like text, audio, video, images, etcetera) in a single place. So in terms of development, it reduces the burden of storing multiple files in a single folder. The packaging is a very good factor for software developers since we have a single JAR file that is authenticated using a signature. So JARs makes it efficient in storage as well as increases its security.
  • Etcetera
For creating and managing JAR files Sun, Microsystems provides tools called JAR as part of the JDK.
 
To view the commands of the JAR tools open a command prompt and type:
 
fig-1.jpg
 
Now press Enter and see the commands of the JAR tools as in the following:
 
fig-2.jpg
 
Now to perform several operations using JAR Tools.
 
For a sample test, add some files in a folder. Let's create a new folder; I created a new folder in the "E:\Sandy" location named "jar" and added a file in it. The following Java files are added.
 
We create two Java files named First.java and Second.java.
 
First.java
  1. class First   
  2. {  
  3.  public static void main(String args[])   
  4.  {  
  5.   System.out.println("It is a first java file");  
  6.  }  
  7. }   
Second.java
  1. class Second   
  2. {  
  3.  public static void main(String args[])   
  4.  {  
  5.   System.out.println("It is the second java file");  
  6.  }  
  7. }   
Now compile both files separately. Then we see that our folder contains four files named "First.java", "Second.java",  "First.class" and "Second.class
 
1. Create JAR files using these four types of files.
 
Syntax:
 
jar -cf file_name.jar *<-. As shown in the following figure.
 
Fig-3.jpg
 
Here "cf" is used to create a JAR file, in which the "c" command creates a new archive and f specify the archive filename.
 
"demo.jar" is our new JAR filename.
 
"*" is used to add all files in our demo.jar file.
 
Now open our folder and check that there is a new JAR file created with the name "demo.jar" that contains all the four files. As shown in fig.
fig-4.jpg
 
2. View the components of a JAR file.
 
For viewing the components of a JAR file the syntax is:
 
jar -tf File_Name <-
 
Where "tf" shows the JAR file on the console in which the "t" commands show a "list table of contents" and "f" specifies the archive filename. The command is shown below.
 
fig-5.jpg
 
Now press Enter to view the components.
 
fig-6.jpg
 
Note: You'll see two additional files shown there that is self-created by JAR tools. Don't worry about those files; they contain meta-information about the file.
 
3. Extracting the contents of a JAR File.
 
To extract the component of JAR file the syntax are
 
jar -xf File_Name <-
 
Where "xf" extracts the JAR file. In which "x" is used to "extract the file" and "f" is used to specify the filename of the file we need to extract to.
 
Now delete all your files from the JAR folder except "demo.jar" and ensure that our folder contains only the single file named "demo.jar" as in the following:
 
fig-7.jpg
 
Now enter the following command:
 
fig-8.jpg
 
Now check our folder that the file was extracted using this command. as in the following:
 
fig-9.jpg
 
Note:
 
Similarly, we can perform another operation like updating (adding or deleting files from existing JAR file), adding classes, adding security, signing JAR files, etcetera.