White Paper
Z500a
25 June 2004
Java 2 Micro Edition
Originally developed by Sun in 1991, Java is a
programming language used to develop applications -
utility programs, games, plug-ins etc. - for different
hardware and software platforms. Users of Java-enabled
devices can install new applications and games to make
their devices more personal and adapt them to specific
needs.
J2ME CLDC/MIDP (kJava)
In 1999, Sun regrouped its Java technologies into three
platforms or editions. J2ME (Java 2 Micro Edition)
became the platform targeting “micro” devices with
small processors and memory capacities, such as mobile
phones, communicators and PDAs. (The other two Java
platforms are Java 2 Standard Edition, J2SE, and Java 2
Enterprise Edition, J2EE).
J2ME addresses a variety of devices. To handle the
diversity, two concepts have been introduced –
configurations and profiles. A configuration defines a
minimum platform for a family of devices with similar
processing and memory capacities. A profile targets a
specific device category within that family, for instance
mobile phones.
Two J2ME configurations are available:
• CDC, Connected Device Configuration. This config-
uration is aimed at devices such as PDAs.
• CLDC, Connected Limited Device Configuration.
This configuration is aimed at devices such as mobile
phones and pagers.
Current situation
So far, two profiles have been established for J2ME:
• MIDP, Mobile Information Device Profile, and
• Personal Profile.
MIDP is connected to the CLDC configuration and
provides developers with essential information and
guidance when writing programs for mobile phones and
two-way pagers.
Personal Profile is linked to the CDC configuration.
Targeted at PDAs, this combination replaces
PersonalJava in J2ME.
CLDC/MIDP v. PersonalJava
Besides targeting different types of devices, the main
difference between J2ME CLDC and PersonalJava from
a user's point of view is that applications written in J2ME
CLDC can be downloaded from the Internet.
PersonalJava applications are typically transferred to
devices from a PC via cable.
Hand-held computers and mobile phones that support
Java also need a Java interpreter to run the applications.
Since the Java Virtual Machine (JVM) was not the
optimal interpreter for devices with small memory
capacity and slower processors, Sun developed K Virtual
Machine (KVM). A KVM requires only 40-80 KB of
memory and can run on processors with low clock
frequency. KVM is only used for J2ME CLDC.
PersonalJava relies on the Java Virtual Machine (JVM).
PersonalJava has a richer application environment and
can interact more extensively with the phone software.
J2ME CLDC uses a security model, often referred to as
the sandbox. The sandbox includes a number of system
components working together to ensure that untrusted
applications cannot gain access to system resources. To
put a sandbox into service, the Java platform uses three
major components: the class loader, the byte-code
verifier and the security manager. Each part plays an
important role in maintaining the integrity of the system
by securing that:
• Only the correct classes are loaded.
• The classes are in the correct format.
• Untrusted classes do not execute dangerous instruc-
tions.
J2ME in detail