Some of the more commonly asked questions on the various forums for J2ME seem to be "What is J2ME?" and "Is <so-and-so-product> a part of J2ME?" Here is where you will find all the APIs that fall beneath J2ME's umbrella, and the packages you will find within those APIs.
Connected, Limited Device Configuration (CLDC) - Version 1.0
CLDC contains the following packages:
java.io - input and output through data streams
java.lang - fundamental classes
java.util - collections, data and time facilities, other utilities
javax.microedition.io - generic connections classes
You can find more information on CLDC at
http://java.sun.com/products/cldc
Mobile Media (CLDC Optional Package) - Version 1.0
Mobile Media contains the following packages:
javax.microedition.media - interfaces and Manager class for obtaining resources
javax.microedition.media.control - specific control types to use with players
javax.microedition.media.protocol - protocol handling types
More information can be found at http://jcp.org/aboutJava/communityprocess/final/jsr135
Wireless Messaging API (CLDC Optional Package)
javax.microedition.io - modified for messaging use
javax.wireless.messaging - send and receive support, message types
You can find more details here:
http://java.sun.com/j2me/docs/pdf/WMA-RI.pdf
Bluetooth API (CLDC Optional Package) - Version 1.0
The BTAPI contains the following:
javax.bluetooth - discovery, connection, remote and local devices, etc.
javax.obex - authentication, obex support, etc
More information can be found at the Motorola site: http://e-www.motorola.com/webapp/sps/site/
taxonomy.jsp?nodeId=03M0ym4sDZxM0zZ6m1Y6
Connected Device Configuration (CDC) - Version 1.0
CDC contains the following packages:
java.io - input and output
java.lang - fundamental classes
java.lang.ref - reference object classes
java.lang.reflect - reflective information about classes
java.math - BigInteger support
java.net - networking support
java.security - security framework
java.security.cert - parsing and management of certificates
java.text - used for handling text, dates, numbers, and messages
java.text.resources - contains a base class for locale elements
java.util - collections, date/time, miscellaneous functions
java.util.jar - reading JAR files
java.util.zip - reading Zip files
javax.microedition.io - connections classes
Look for more CDC information at
http://java.sun.com/products/cdc
J2ME RMI (Optional Package) - Version 1.0
RMIOP contains the following:
java.rmi - RMI root package (remote interface, naming, etc.)
java.rmi.activation - support for RMI activation
java.rmi.dgc - distributed garbage collection
java.rmi.registry - a class to locate the registry and an interface to refer
to it
java.rmi.server - support for the unicast server
Find more information here:
wwws.sun.com/software/communitysource/j2me/rmiop/index.html
Mobile Information Device Profile - Version 1.0
MIDP builds on CLDC and contains the following packages:
java.io
java.lang - CLDC, plus an additional exception
java.util - CLDC, plus timer facilities
javax.microedition.io - networking support based upon the CLDC framework
javax.microedition.lcdui - for user interfaces for MIDP applications
javax.microedition.rms - persistent data storage
javax.microedition.midlet - defines applications and interactions between app and environment
The products page for MIDP is at
http://java.sun.com/products/midp
Mobile Information Device Profile - Version 2.0
MIDP2, the next generation of the MID profile, contains the following packages:
java.lang - see MIDP1.0
java.util - some changes from MIDP1.0
javax.microedition.io - some changes from MIDP1.0
javax.microedition.lcdui - some changes from MIDP1.0
javax.microedition.lcdui.game - support for gaming content
javax.microedition.media - a building block for the Mobile Media API
javax.microedition.media.control - control types that can be used with a player
javax.microedition.midlet - see MIDP1.0
javax.microedition.pki - support for secure connections (X.509)
javax.microedition.rms - some changes from MIDP1.0 (record sharing)
Foundation Profile - Version 1.0
The Foundation Profile builds on CDC and contains the following packages:
java.io - see CDC
java.lang - see CDC
java.lang.ref - see CDC
java.lang.reflect - see CDC
java.math - see CDC
java.net - see CDC
java.security - see CDC
java.security.cert - see CDC
java.security.acl - access control lists
java.security.interfaces - interfaces for generating keys
java.security.spec - key specifications and algorithm parameter specifications
java.text - see CDC
java.text.resources - see CDC
java.util - see CDC
java.util.jar - see CDC
java.util.zip - see CDC
javax.microedition.io - see CDC
The profile products page is at
http://java.sun.com/products/foundation
PersonalJava Specification - Version 1.2a
PersonalJava will eventually be superseded by the Personal Profile on devices, but for now the specification contains the following packages:
java.applet - full support from JDK1.1.8
java.awt - modified from JDK1.1.8
*Note: There is an extra method for PJ for double-buffering in java.awt.Component
java.awt.datatransfer - full support
java.awt.event - full support
java.awt.image - full support
java.awt.peer - modified
java.beans - full support
java.io - modified
java.lang - modified
java.lang.reflect - modified
java.math optional - may or may not be supported
java.net - modified
java.rmi - optional
java.rmi.dgc - optional
java.rmi.registry - optional
java.rmi.server - optional
java.security - modified
java.security.acl - unsupported
java.security.cert - some classes required, some optional
java.security.interfaces - required if code signing is included
java.security.spec - required if code signing is included
java.sql - optional
java.text - full support
java.text.resources - modified
java.util - modified
java.util.jar - required if code signing is included
java.util.zip - modified
Additional PersonalJava specific packages are:
com.sun.awt - for mouseless environments
com.sun.lang - a couple of error and exception classes
com.sun.util - for handling timer events
For more information on the PersonalJava Application Environment see http://java.sun.com/products/personaljava
Personal Profile - Version 1.0
The Personal Profile contains:
java.applet - applet and applet context
java.awt.color - color spaces
java.awt.event - event handling for the AWT
java.awt.datatransfer - used to transfer data between applications
java.awt.image - classes to create and modify images
java.beans - JavaBeans support
java.io
java.lang
java.lang.ref
java.lang.reflect
java.math
java.net
java.rmi
java.rmi.registry
java.security
java.security.acl
java.security.cert
java.security.interfaces
java.security.spec
java.text
java.util
java.util.jar
java.util.zip
javax.microedition.io - the generic collections classes
javax.microedition.xlet - interfaces used for app/app manager communications
javax.microedition.xlet.ixc - inter xlet communications
See the following page for more info: http://java.sun.com/products/personalprofile
Personal Basis Profile - Version 1.0
Has a similar package list to the Personal Profile, however, there are no java.applet or java.awt.datatransfer packages.
The Personal Basic Profile page is at
http://java.sun.com/products/personalbasis
Java TV - Version 1.0
Java TV contains the following packages (in addition to PersonalJava):
javax.tv.carousel - access to broadcast file and directory data
javax.tv.graphics - root container access and alpha blending
javax.tv.locator - referencing data and resources
javax.tv.media - controls and events for management of real-time media
javax.tv.media.protocol - access to generic streaming data in a broadcast
javax.tv.net - IP datagram access
javax.tv.service - service information access
javax.tv.service.guide - supporting electronic program guides
javax.tv.service.navigation - services and hierarchical service information navigation
javax.tv.service.selection - select a service for presentation
javax.tv.service.transport - information about transport mechanisms
javax.tv.util - creating and managing timer events
javax.tv.xlet - communications interfaces used by apps and the app manager
Get off that couch and check out the JavaTV page at http://java.sun.com/products/javatv
Java Embedded Server - Version 2.0
JES contains the following packages:
com.sun.jes.service.http - servlet/resource registrations
com.sun.jes.http - basic authentication
service.http.auth.basic - management of users and their access
com.sun.jes.service.timer - for handling timer events
org.osgi.framework - consistent model for app. dev., supports dev. and use of services
org.osgi.service.device - detection of devices
org.osgi.service.http - http access of resources
org.osgi.service.log - logging facility
You can find more information on the Java Embedded Server at www.sun.com/software/embeddedserver
Java Card - Version 2.2
Java Card contains the following packages:
java.io - a subset of the standard java.io package
java.lang - fundamental classes
javacard.framework - classes for the construction, comms, etc., for JavaCard applets
javacard.framework.service - aggregating service components
javacard.security - security framework
javacardx.crypto - extension package with security classes and interfaces
Next time you use that American Express Blue card, you may want to know how it works, so take a look at
http://java.sun.com/products/javacard