In Figure 5.1, we can see that J2ME is currently split into two parts, or configurations ,as
briefly explained in Chapter 1, “Deploying Java.” We will discuss J2ME deployment options in
the next section.
Deploying J2ME code depends on the configuration and the profile in exam. Providing a full
exposition of such a broad topic is beyond the scope of this topic. Instead, after a minimal
introduction to the J2ME platform, we will focus on the MID Profile (MIDP) for mobile
devices. This includes support for wireless phones, two-way pagers, and other mobile devices.
An Introduction to J2ME
J2ME is different from other Java 2 editions in that APIs, physical input/output facilities, and
available memory vary greatly from one device to another. This could be a problem if the same
application were to be deployed on different classes of devices. Fortunately, this is rarely the
Indeed, the J2ME architecture has been built with the tacit assumption that the case
of “cross-development,” spanning different profiles on possibly different configura-
tions was a very rare case in common practice.
To harness all this complexity while preserving the advantages of the Java platform (portabil-
ity, security, and a high-level language widespread among developers), Sun engineers have
devised a particular architecture, composed of a few configurations for defining the common
features for a class of devices. These configurations comprise the virtual machine, core
libraries, and some APIs, while leaving the differences of each device to be described by a so-
Profiles are thought to gather together not only common devices (such as cell phones) but also
The two configurations currently provided for the J2ME platform are the following:
• Connected Limited Device Configuration (CLDC) . Designed for devices with con-
strained hardware resources (principally CPU and memory). Typically, such devices run
on either a 16- or 32-bit CPU with 512 Kbytes or less memory available for client appli-
cations and the Java platform itself.