HomeDigital EditionSys-Con RadioSearch Java Cd
Advanced Java AWT Book Reviews/Excerpts Client Server Corba Editorials Embedded Java Enterprise Java IDE's Industry Watch Integration Interviews Java Applet Java & Databases Java & Web Services Java Fundamentals Java Native Interface Java Servlets Java Beans J2ME Libraries .NET Object Orientation Observations/IMHO Product Reviews Scalability & Performance Security Server Side Source Code Straight Talking Swing Threads Using Java with others Wireless XML

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.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
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

All Rights Reserved
Copyright ©  2004 SYS-CON Media, Inc.
  E-mail: [email protected]

Java and Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. SYS-CON Publications, Inc. is independent of Sun Microsystems, Inc.