Java Platform, Micro Edition (Java ME) provides a robust, flexible environment for applications running on mobile and other embedded devices—mobile phones, personal digital assistants (PDAs), TV set-top boxes, and printers.
The vast majority of consumer mobile phones allow application development using Java ME. These "feature phones" also contain web browsers and have access to the internet, allowing for the creation of immersive content and environments that users are likely to carry with them at all times.
Development for Java ME has often been marred by the vast array of virtual machines running on phones, and the subtle differences between them. The ideal of having a single application binary that can run on all handsets has often been thwarted by these differences.