J2ME (Java 2 Micro Edition) is a version of Java targeting mobile devices. It is much more efficient than J2SE (Java 2 Standard Edition) and can run in a constrained environment. It is not strictly limited to mobile devices and can run on some embedded devices. Java is known to be highly portable. Portability allows a build once, compile for many different devices scenario. J2ME can be easily ported across mobile devices. This does not hold true for all situations. The hardware on one device can be different than the next device. So, a J2ME application with GPS functionality that runs on a GPS capable phone, obviously, can not be ported to a non-GPS compatible phone. J2ME provides a complete object-oriented programming environment. There are many tools included in the J2ME software development kit that allows developers to easily build clean and usable user interfaces. There are a large number of tools included in the development environment. The BlackBerry Software Development Environment/RIM (Research In Motion) utilizes J2ME for the programming language. There is a complete JDK Java Development Kit to handle developing applications for the BlackBerry.
Learn more about J2ME Services.
Introduction to J2ME.