Professional Documents
Culture Documents
JAR files are Java's version of ZIP files. In fact, JAR uses the ZIP file format. There are two main uses for JAR files which I shall explain here. The first use is to compress (make a smaller size) a number of files into one file (archiving). The second use is to make a Java executable JAR file. Compress Files To A Java Archive (JAR) Common Examples Compress Files To An Executable Java Archive (JAR) Create An Executable JAR Running An Executable JAR From Command Line Running An Executable JAR From Explorer (Windows) Further Resources
Common Examples Let's say I have a Java application consisting of three source files that I wish to distribute: One.java Two.java Three.java I also want to call my JAR file example.jar. To make a JAR file with just One.java: jar CF example.jar One.java To make a file with all three files listed separately: jar CF example.jar One.java Two.java Three.java To make a file with all three files using a pattern match: jar CF example.jar *.java It goes (almost) without saying that the source files are in the same directory you are running the jar command in.
Create An Executable JAR All JAR files contain something called a manifest file which holds information Java wants to know. One piece of information a manifest file may contain is the name of a class that will be run if the JAR file is executed. The first thing you must do is create a text file that lists the "main" class - the class that has the main method you want executed when the JAR is executed. Let's say that Three from the above example has the main method I want executed. I create a text file called "mainClass.txt" with the following text: Main-Class: Three
IMPORTANT: the text file only needs the one line of text for this purpose. However, the file must end with a blank line or this will not work, ie the file has two lines in it - the
second one is empty. Note too the class is called "Three" and not "Three.java" (the file containing the source code) or "Three.class" (the file containing the byte codes). If your class file is in a package hierarchy, you must use the fully qualified name of the class (eg "myPackage.MyClass"). I then run the jar utility with this command line: jar cmf mainClass.txt example.jar *.class With this line, I told jar to create a JAR file (option c) with modifications to the manifest file (option m) as specified within mainClass.txt, naming the JAR file (option f) as example.jar and including everything that matches the pattern *Class
Running An Executable JAR From Command Line I can run it from the command line like this: java -jar example.jar
Running An Executable JAR From Explorer (Windows) Within Windows, it is also possible to set up Windows Explorer so that you can double click on the JAR file icon to execute the file (handy for GUI applications). The first thing you must do is set up the correct association with the 'javaw.exe' application that JDK for Windows will have. Click here for an older example with pictures! Open Windows Explorer and select Tools | Folder Options | File Types. If there is no JAR file type, create it. Give it a description like jar - Executable Jar File to ensure it sorts under 'jar'. Create or edit the action called "open" and associate it with the following action: "C:\Java\jdk1.4.0\bin\javaw.exe" -jar "%1" Of course, you will replace "C:\Java\jdk1.4.0\bin\javaw.exe" with whatever path is correct on your machine. IMPORTANT: include the double quotes to take care of names with spaces. If you are using something other than Windows and you know how to set up an association in your OS, please contact me.
Further Resources
Java's Tutorial on Jar files: http://java.sun.com/docs/books/tutorial/jar/ Roedy Green's JAR file page: http://www.mindprod.com/jglossjar.html#JAR
Monash University ABN 12 377 614 012 Copyright 1994-2001 Monash University - Last Date Modified: 1/10/2002 - Caution
Top
These pages were created by Robert Mark Bram using Macromedia DreamWeaver UltraDev 4.0.