Java ME (J2ME)

Java 2 Platform, Micro Edition (J2ME), announced by Sun Microsystems in 1999 and later renamed Java ME, was the edition of Java aimed at small, resource-constrained, connected devices. Where the Standard and Enterprise editions targeted desktops and servers, J2ME targeted set-top boxes, pagers, personal organizers, and above all mobile phones, machines with kilobytes of memory rather than megabytes. To make Java fit such hardware, the platform was split into configurations, which defined a base virtual machine and core libraries, and profiles, which added device-category-specific APIs on top.

The base configuration for phones was the Connected Limited Device Configuration (CLDC), standardized through the Java Community Process as JSR 30 and finalized in May 2000. CLDC defined a minimal platform for devices with roughly 128K to 512K of total memory, limited power, and intermittent network connectivity, and it specified a small subset of the standard Java libraries together with a Generic Connection Framework for input and output. Because the hardware could not support a full Java virtual machine, CLDC ran on a stripped-down VM (the KVM, or Kilobyte Virtual Machine) that omitted features such as floating point and reflection.

On top of CLDC sat the Mobile Information Device Profile (MIDP), standardized as JSR 37 under specification lead Brian Deuser of Motorola and finalized in September 2000. Its expert group read like a roster of the mobile industry, with Nokia, Ericsson, Motorola, Samsung, Sony, Siemens, RIM, and many others participating. MIDP added the application model and APIs that phones actually needed: a lifecycle for applications (called MIDlets), a simple user-interface toolkit, persistent storage, and networking. A packaged MIDlet suite shipped as a JAR file accompanied by a JAD descriptor that phones used to download and install it over the air.

The combination of CLDC and MIDP gave the industry, for the first time, a single write-once application platform that ran across phones from many different manufacturers. The most visible result was games: downloadable Java games became a major business on feature phones in the early-to-mid 2000s, and utilities, messaging clients, and ringtone tools followed. Carriers built download portals around MIDlets, and Java ME briefly became one of the most widely deployed application runtimes in the world.

Java ME’s reach was vast but its capabilities were limited by the lowest-common-denominator hardware it targeted, and fragmentation among device implementations made true write-once portability harder in practice than in theory. As smartphones with full operating systems and native app stores arrived, the feature-phone Java application gradually faded. Even so, J2ME was the platform that first proved there was a global mass market for downloadable mobile software, and it carried Java’s reach to hundreds of millions of devices.

Sources

Last verified June 8, 2026