JAD and JAR files

Today’s post will be divided into 2 parts, first will cover JAD files and second will be about JARs.

Part I

JAD stands for Java Application Descriptor, it’s a special file prepared (mostly) by IDE in the process of building/compiling project. It’s used (as the name indicates) to describe file containing application (JAD doesn’t contain application). JAD’s are used to set/provide information about program’s attributes like:

  • information about size
  • application’s name
  • version
  • vendor (author)
  • icon path
  • comment
  • MIDP/CLDC requirements

It will be mostly appreciated by users, who want for example to install program over the internet. They need only to download JAD, than they’ll be able to see programs requirements and size, and decide if they really want do download it or resigin (for example if data transfer costs are to high).

JAD file has to provide informaiton about application’s path, it might be only relative path (like: HelloMIDlet.jar) or location in the web (like: example.com/HelloMIDlet.jar) then jar file will be downloaded (of course after confirmation from user).

Part II

JAR stands for Java Archive, it’s really normal zip archive (you can unzip it using your normal program that you use everyday). It contains compiled versions of your classes (files *.class), additional files (like: graphics, icons, text files). It has also very important file MANIFEST.MF in
META-INF directory. This file is very similar to JAD.

Table containing all attributes names and information where it might/must occur:

Attribute
Manifest
JAD
MIDlet-Name
Must
Must
MIDlet-Version
Must
Must
MIDlet-Vendor
Must
Must
MIDlet-Jar-URL
Must
MIDlet-Jar-Size
Must
MIDlet-Install-Notify
May
May
MIDlet-Delete-Notify
May
May
MIDlet-Delete-Confirm
May
May
MIDlet-Info-URL
May
May
MIDlet-Description
May
May
MIDlet-Icon
May
May
MicroEdition-Profile (1)(2)
Must
Must
MicroEdition-Configuration (1)(3)
Must
Must
MIDlet- (1)(4)
Must
Must
MIDlet-Push- (5)
May
May
MIDlet-Data-Size
May
May
MIDlet-Permissions
May
May
MIDlet-Permissions-Opt
May
May

from: http://developers.sun.com/mobility/midp/ttips/getAppProperty/

For us only some attributes will be useful (they are listed in part II). To learn syntax of files JAD and manifest you can just look at them in our first application.

Soon, I’ll be writing about how to set and modify application’s attributes within Netbeans, what is much easier and pleasant.