What is JAR?
JAR stands for Java ARchive. It’s a file format based on the popular ZIP file format and is used for aggregating many files into one. Although JAR can be used as a general archiving tool, the primary motivation for its development was so that Java applets and their requisite components (.class files, images and sounds) can be downloaded to a browser in a single HTTP transaction, rather than opening a new connection for each piece. This greatly improves the speed with which an applet can be loaded onto a web page and begin functioning. The JAR format also supports compression, which reduces the size of the file and improves download time still further. Additionally, individual entries in a JAR file may be digitally signed by the applet author to authenticate their origin.
JAR is:
- the only archive format that is cross-platform
- the only format that handles audio and image files as well as class files
- backward-compatible with existing applet code
- an open standard, fully extendable, and written in java
- the preferred way to bundle the pieces of a java applet
JAR consists of a zip archive, as defined by PKWARE, containing a manifest file and potentially signature files, as defined in the JAR File Specification.
The APPLET tag
Changing the APPLET tag in your HTML page to accomodate a JAR file is simple. The JAR file on the server is identified by the ARCHIVE parameter, where the directory location of the jar file should be relative to the location of the html page:
<applet code=Animator.class
archive="jars/animator.jar"
width=460 height=160>
<param name=foo value="bar">
</applet>
Note that the familiar CODE=myApplet.class parameter must still be present. The CODE parameter, as always, identifies the name of the applet where execution begins. However, the class file for the applet and all of its helper classes are loaded from the JAR file.
Th ARCHIVE attribute describes one or more JAR files containing classes and other resources that will be “preloaded”. The classes are loaded using an instance of an AppletClassLoader with the given CODEBASE. It takes the form archive = archiveList. The archives in archiveList are separated by “,”.
Once the archive file is identified, it is downloaded and separated into its components. During the execution of the applet, when a new class, image or audio clip is requested by the applet, it is searched for first in the archives associated with the applet. If the file is not found amongst the archives that were downloaded, it is searched for on the applet’s server, relative to the CODEBASE (that is, it is searched for as in JDK1.0.2).
The archive tag may specify multiple JAR files. Each JAR file must be separated by “,” (comma). Each file is downloaded in turn:
<applet code=Animator.class
archive="classes.jar , images.jar , sounds.jar"
width=460 height=160>
<param name=foo value="bar">
</applet>
There can be any amount of white space between entries within the archive parameter. In addition, the archive tag itself is case-insensitive; it can be lower-case, upper-case, or any combination of lower- and upper-case letters, such as ArCHiVe.
Executable JAR Files
On Microsoft Windows systems, the Java 2 Runtime Environment's installation program will register a default association for JAR files so that double-clicking a JAR file on the desktop will automatically run it with javaw -jar. Dependent extensions bundled with the application will also be loaded automatically. This feature makes the end-user runtime environment easier to use on Microsoft Windows systems.
The Solaris 2.6 kernel has already been extended to recognize the special “magic” number that identifies a JAR file, and to invoke java -jar on such a JAR file as if it were a native Solaris executable. A application packaged in a JAR file can thus be executed directly from the command line or by clicking an icon on the CDE desktop.
By following these steps, you can effectively create, manage, and utilize JAR files in your Java projects.
Step 1: Understanding JAR Files
- JAR Basics: A JAR file is essentially a zip file with a
.jar
extension. It can contain Java class files, libraries, resources, and a manifest file. - Purpose: JAR files are used for packaging Java applications and libraries for easy distribution and deployment.
Step 2: Creating a JAR File
- Compile Java Classes: Ensure all your Java source files (
.java
) are compiled into bytecode (.class
) files. You can compile them using javac
. - Create a Manifest File (Optional): A manifest file (
MANIFEST.MF
) can be used to specify meta-information about the JAR file, like the main class to run.Manifest-Version: 1.0
Main-Class: MyClass
- Package Classes into JAR: Use the
jar
tool to create the JAR file.jar cfm MyApp.jar MANIFEST.MF MyClass.class
c
– create new archivef
– specify archive file namem
– include manifest fileMyApp.jar
– name of the JAR fileMANIFEST.MF
– path to the manifest fileMyClass.class
– classes to include in the JAR
Step 3: Running a JAR File
- If the JAR file is executable (i.e., it has a
Main-Class
defined in the manifest), you can run it using:
Step 4: Extracting Contents from a JAR File
- To view the contents of a JAR file, you can use the
jar
tool with the t
option: - To extract the contents of a JAR file:
Step 5: Adding Files to an Existing JAR
- To update a JAR file by adding new files or replacing existing ones:
jar uf MyApp.jar NewClass.class
Step 6: Signing a JAR File (Optional)
- For security reasons, you may want to sign your JAR file. This involves creating a digital signature using tools like
jarsigner
.
Step 7: Verifying a Signed JAR File (Optional)
- To verify the authenticity of a signed JAR file, use the
jarsigner
tool:jarsigner -verify MyApp.jar
Tools Required
- JDK (Java Development Kit): Ensure you have the JDK installed on your system, as it includes the
javac
and jar
tools. - Text Editor: For editing Java source files and manifest files.
if u intrst in https://customtoolbardevelopment.com/how-to-track-your-bag-to-vpn-and-ensure-a-smooth-vacation/