Java Application Descriptor Help Box

Deploying midlets on a server for OTA download can be quite complex. You need the software archiv itself, but also a java application descriptor, or “jad” file. The jad-file contains information about the archive. The mobile phone downloads the jad-file first. It can then make some basic checks before downloading the bigger Jar-file.

We have collected information about frequently made errors.

The JAD Online Checker

This tool checks a lot of common errors of your jad file.

Access this tool at jadcheck.appspot.com.

JAD File Format

The jad file contains key-value pairs in a plain text file. Each key starts at the start of the line, and ends with a colon (‘:’).

Remove all blank lines, they can confuse some phones.

Mime-type

One of the most common problems: the web server needs to deliver the jad file with a special mime-type. Many phones will refuse to install with a wrong mime-type.

This mime-type is often not included in the web server configuration, so you need to configure it. That is not difficult, but make sure it is permanent: sometimes your server administrator may install a new version of the web server, and this may reset the mime types.

The mime type is "text/vnd.sun.j2me.app-descriptor".

To configure the Apache web server, add the following line to  conf/mime.types

text/vnd.sun.j2me.app-descriptor    jad

MIDlet-Name

Is displayed to the user. The name should not be to long, otherwise it is cut off on grid displays. Some phones have problems with special characters like German umlauts in the name.

MIDlet-Jar-URL

The URL from which the mobile phone can download the jar-archive. This must be an absolute path including the domain name. So if you put the jar file on another server, you need to change this value in the jad file.

MIDlet-Jar-Size

Size of the jar file in bytes. Not kilo-bytes, not mega-bytes, single bytes. Must match exactly. So this value need to be changed each time the jar file is regenerated.

MicroEdition-Profile

Shows which standard of the MIDP this midlet is using. Use either “1.0” or “2.0”.

Some SDKs generate also for MIDP 2.1. Do not use this, as it will not install on phones that are using 2.0.