Sun Microsystems defines J2ME as "a highly optimized Java run-time environment targeting
a wide range of consumer products, including pagers, cellular phones, screen-phones,
digital set-top boxes and car navigation systems."
Announced in June 1999 at the JavaOne Developer Conference, J2ME brings the
cross-platform functionality of the Java language to smaller devices, allowing mobile
wireless devices to share applications. With J2ME, Sun has adapted the Java platform for
consumer products that incorporate or are based on small computing devices.
Java Platform Micro Edition (Java ME), formerly and popularly known as Java 2 Micro Edition (J2ME) is a Java platform for embedded devices like mobile phones, PDA's, set-top boxes etc. J2ME customizes Java to these device capabilities. J2ME is optimized to smaller memory footprint and the core to this technology is KVM which is an optimized Virtual Machine for various devices. This optimization is based on memory, power consumption and connectivity of the respective devices.
When we say devices there can be various devices each having various capabilities, screen size, functionality etc. It would be meaningless to have a same Virtual Machine for all the devices. Let us consider following scenarios
- A call handling feature of a mobile device is useless in set-top boxes.
- Mobile device capabilities can vary from device to device, there are devices which support blue tooth and those which do not support Bluetooth.
- A printing capability of a printer is useless in case of a set-top box.