Download the JDK
Search the Tutorials
Hide the TOC
Trail: Deployment
Lesson: Packaging Programs in JAR Files
Section: Using JAR Files: The Basics
Packaging Programs in JAR Files
Using JAR Files: The Basics
Creating a JAR File
Viewing the Contents of a JAR File
Extracting the Contents of a JAR File
Updating a JAR File
Running JAR-Packaged Software
Working with Manifest Files: The Basics
Understanding the Default Manifest
Modifying a Manifest File
Setting an Application's Entry Point
Adding Classes to the JAR File's Classpath
Setting Package Version Information
Sealing Packages within a JAR File
Signing and Verifying JAR Files
Understanding Signing and Verification
Signing JAR Files
Verifying Signed JAR Files
Using JAR-related APIs
The JarClassLoader Class
The JarRunner Class
Home Page > Deployment > Packaging Programs in JAR Files
Running JAR-Packaged Software

> Now that you've learned how to create JAR files, how do you actually run the code that you've packaged? Consider these three scenarios:
> - Your JAR file contains an applet that is to be run inside a browser.
> - Your JAR file contains an application that is to be invoked from the command line.
> - Your JAR file contains code that you want to use as an extension.

> This section will cover the first two situations. A separate trail in the tutorial on the extension mechanism covers the use of JAR files as extensions.

### Applets Packaged in JAR Files

> To invoke any applet from an HTML file for running inside a browser, you need to use the APPLET tag. For more information, see the Applets lesson. If the applet is bundled as a JAR file, the only thing you need to do differently is to use the ARCHIVE parameter to specify the relative path to the JAR file.

> As an example, let's use (again!) the TicTacToe demo applet that ships with the JavaTM Development Kit. The APPLET tag in the HTML file that calls the demo looks like this:

> >     <applet code=TicTacToe.class
> >             width=120 height=120>
> >     </applet>

> If the TicTacToe demo were packaged in a JAR file named `TicTacToe.jar`, you could modify the APPLET tag with the simple addition of an ARCHIVE parameter:

> >     <applet code=TicTacToe.class
> >             archive="TicTacToe.jar"
> >             width=120 height=120>
> >     </applet>

> The ARCHIVE parameter specifies the relative path to the JAR file that contains `TicTacToe.class`. This example assumes that the JAR file and the HTML file are in the same directory. If they're not, you would need to include the JAR file's relative path in the ARCHIVE parameter's value. For example, if the JAR file was one directory below the HTML file in a directory called `applets`, the APPLET tag would look like this:

> >     <applet code=TicTacToe.class
> >             archive="applets/TicTacToe.jar"
> >             width=120 height=120>
> >     </applet>

### JAR Files as Applications

> You can run JAR-packaged applications with the Java interpreter. The basic command is:

> >     java -jar jar-file

> The `-jar` flag tells the interpreter that the application is packaged in the JAR file format. You can only specify one JAR file, which must contain all the application-specific code.

> Before you execute this command make sure the runtime environment has an information of which class within the JAR file is the application's entry point.

> To indicate which class is the application's entry point, you must add a `Main-Class` header to the JAR file's manifest. The header takes the form:

> >     Main-Class: classname

> The header's value, `classname`, is the name of the class that's the application's entry point.

> For more information, see the Setting an Application's Entry Point section.

> When the `Main-Class` is set in the manifest file, you can run the application from the command line:

> >     java -jar app.jar

Previous page: Updating a JAR File
Next page: Working with Manifest Files: The Basics