The JavaTM Tutorial

| Start of Tutorial | Search

## Trail: JAR Files

### by Alan Sommerer

> Your feedback is important to us! If you have comments about this trail, you can send us mail about it by filling out the form on our feedback page.

The JavaTM Archive (JAR) file format enables you to bundle multiple files into a single archive file. Typically a JAR file will contain the class files and auxiliary resources associated with applets and applications.

> Note: The JAR file format was introduced in version 1.1 of the Java Development Kit, and version 1.2 includes several enhancements to JAR file functionality. Unless otherwise noted, features covered in this trail pertain to both versions 1.1 and 1.2. If a feature description or example pertains only to one version, you'll be alerted with an annotation such as "version 1.2."

The JAR file format provides many benefits:

- Security: You can digitally sign the contents of a JAR file. Users who recognize your signature can then optionally grant your software security privileges it wouldn't otherwise have.
- Decreased download time: If your applet is bundled in a JAR file, the applet's class files and associated resources can be downloaded to a browser in a single HTTP transaction without the need for opening a new connection for each file.
- Compression: The JAR format allows you to compress your files for efficient storage.
- Packaging for extensions (version 1.2): The extensions framework provides a means by which you can add functionality to the Java core platform, and the JAR file format defines the packaging for extensions. `Java 3D TM` and `JavaMail` are examples of extensions developed by SunTM. By using the JAR file format, you can turn your software into extensions as well.
- Package Sealing (version 1.2): Packages stored in JAR files can be optionally sealed so that the package can enforce version consistency. Sealing a package within a JAR file means that all classes defined in that package must be found in the same JAR file.
- Package Versioning (version 1.2): A JAR file can hold data about the files it contains, such as vendor and version information.
- Portability: The mechanism for handling JAR files is a standard part of the Java platform's core API.

This trail has three lessons:

Using JAR Files: The Basics shows you how to perform basic JAR-file operations, and how to run software that is bundled in JAR files. This lesson also introduces you to the concept of the JAR file's manifest, which plays an important role in more advanced JAR functionality.

Signing and Authenticating JAR Files shows you how to use the JDKTM tools to digitally sign JAR files and verify the signatures of signed JAR files.

Using JAR-related APIs Introduced in 1.2 introduces you to some of the new JAR-handling features in version 1.2 of the Java platform.

The JAR file format is an important part of the Java platform's extension mechanism. You can learn more about that aspect of JAR files in the The Extension Mechanism trail of this tutorial.

| Start of Tutorial | Search