JAD and JAR files

Page content

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.