In computing, the Java Platform, Micro Edition or Java ME (still commonly referred to by its previous name: Java 2 Platform, Micro Edition or J2ME) is a specification of a subset of the Java platform aimed at providing a certified collection of Java APIs for the development of software for tiny, small and resource-constrained devices based on microcontrollers such as ARM7, ARM9, AVR32, ... Target devices are from many industries: Home appliances, Security, Defense, Automotive, Industrial, Handsets, Industrial Control, Multimedia, Communication, ... cell phones , PDAs and set-top boxes are some well known samples.
Java ME was designed by Sun Microsystems and is a replacement for a similar technology, PersonalJava. Originally developed under the Java Community Process as JSR 68, the different flavors of Java ME have evolved in separate JSRs. Sun provides a reference implementation of the specification, but has tended not to provide free binary implementations of its Java ME runtime environment for mobile devices, rather relying on third parties to provide their own.
As of 22 December 2006, the Java ME source code is licensed under the GNU General Public License, and is released under the project name phoneME.
As of 2008, all Java ME platforms, even up to BD-J, are currently restricted to JRE 1.3 features and uses that version of the class file format (internally known as version 47.0). Should Sun ever declare a new round of Java ME configuration versions that support the later class file formats and language features, such as those corresponding JRE 1.5 or 1.6 (notably, generics), it will entail extra work on the part of all platform vendors to update their JREs.