# Java Platform, Micro Edition

Java Platform, Micro Edition, abgekürzt Java ME [ˈdʒɑːvə ˌɛmˈiː], früher auch als Java Platform 2, Micro Edition oder kurz J2ME bezeichnet, ist eine Umsetzung der Programmiersprache Java für embedded consumer products wie etwa Mobiltelefone oder PDAs. Definiert wird sie in den Java Specification Requests 30 und 37.
Die Grundlage von Java ME bilden dabei die Konfigurationen und die Profile.
Mit J2ME ist es somit möglich, Anwendungen auf mobilen Geräten auszuführen, unabhängig von Hersteller/Modell/Betriebssystem, da diese Anwendungen von der JavaRuntime unabhängig ausgeführt werden.

## Konfigurationen

Die Konfigurationen stellen verschiedene Bibliotheken und eine virtuelle Maschine zur Verfügung. Eine solche Konfiguration kann die Connected Device Configuration (CDC) oder, bei mobilen Geräten, die Connected Limited Device Configuration (CLDC) sein. Zurzeit stehen nur diese beiden Konfigurationen zur Verfügung. Bei der CLDC beobachtet man eine sehr starke Zunahme, da fast jedes aktuelle Handy diese Konfiguration in Kombination mit dem Mobile Information Device Profile nutzt.

## Profile

Profile sind die APIs, die es zu einer Konfiguration gibt. So existiert vor allem für Mobiltelefone das Mobile Information Device Profile (MIDP). Java-Anwendungen, die auf Grundlage der MIDP entwickelt wurden, nennt man auch kurz MIDlet. Dabei kann es sich zum Beispiel um die seit 2002/2003 häufig beworbenen »Java-Spiele für Handys« handeln. Ein weiteres Profil ist das Information Module Profile (IMP), welches eine Untermenge der MIDP darstellt und für die Machine to Machine Kommunikation gedacht ist. Als dessen Einsatzgebiet kann als Beispiel ein Getränkeautomat gesehen werden, welcher befüllt werden möchte und sich dann über dieses Profil irgendwo meldet.
Die Version MIDP2.0 wurde vor allem um die Bedürfnisse der Spieleentwickler erweitert. Eine weitere Ausführung von Java ME ist DoJa, die Java-Version des japanischen Mobilfunkanbieters NTT DOCOMO, die auf i-mode-Handsets zum Einsatz kommt.

## Erweiterungen

Für viele Einsatzzwecke sind die einfacheren Konfigurationen nicht genug, da sie keinen Zugriff auf die internen Funktionen eines Gerätes bieten. Deshalb gibt es viele Erweiterungen, die es ermöglichen, das Adressbuch eines Mobiltelefons (JSR-75) oder die eingebaute Bluetooth-Funktionalität (Java BlueTooth Wireless Technology: JSR-82/JABWT) zu benutzen. Die notwendigen Erweiterungen werden im Rahmen des Java Community Process (JCP) durchgeführt. Namhafte Hersteller wie Nokia, Siemens und IBM stellen Änderungsanforderungen und übernehmen dann die Führung (den Lead) bei der Umsetzung. Beispielsweise sind IBM und PalmSource als Leader für die Änderungsanforderung JSR-75 „PDA Optional Packages for the J2ME(TM) Platform“ zuständig.

## Geschichte

Seit dem 22. Dezember 2006 ist der Quellcode von Suns Referenzimplementierung von Java ME offengelegt und wird im Rahmen eines Projektes namens phoneME als freie Software unter den Bedingungen der GNU General Public License (GPL) verbreitet.
Gegenüber CNet hat Sun im Oktober 2007 angekündigt, die Plattform Java ME zugunsten Java Standard Edition aufzugeben. Grund hierfür ist, dass die Geräte, für die Java ME einst geschaffen wurde, immer leistungsfähiger wurden.

## Weitere Java-Plattformen

* Java Platform, Standard Edition
* Java Platform, Enterprise Edition