J2ME (Java 2 Platform, Micro Edition) is a technology that allows programmers to use the Java programming language and related tools to develop programs for mobile wireless information devices such as cellular phones and personal digital assistants (PDAs). J2ME consists of programming specifications and a special virtual machine, the K Virtual Machine, that allows a J2ME-encoded program to run in the mobile device.
There are two programming specifications: Connected, Limited Device Configuration (CLDC) and the Mobile Information Device Profile (MIDP). CLDC lays out the application program interface (API) and virtual machine features needed to support mobile devices. MIDP adds to the CLDC the user interface, networking, and messaging details needed to interface with mobile devices. MIDP includes the idea of a midlet, a small Java application similar to an applet but one that conforms with CLDC and MIDP and is intended for mobile devices.
Devices with systems that exploit J2ME are already available and are expected to become even more available in the next few years.