Java ME Technology - CDC

CDC Overview

The CDC Product Family
The CDC Configuration
Optional Packages
Reference Implementations
Optimized Implementations
Technology Compatibility Kit

CDC is part of the Java Platform, Mobile Edition (Java ME) family of standards that are continuously being developed in collaboration with industry leaders through the Java Community Process (JCP). The targets for CDC-based technology comprise a broad range of consumer and embedded devices like smart communicators, pagers, high-end personal digital assistants (PDAs), and set-top boxes. Within this range, CDC is the basis for several standard API bundles that address the needs of developers of applications for specific categories of devices.

Download the datasheet and white paper.

Enterprises can...
  • Achieve mobility without sacrificing security
  • Integrate with enterprise applications to a deep level
  • Use Java technology end-to-end, from mobile clients to servers
  • Rely on the robust Java security model -- again, end-to-end
  • Support a wide range of devices from an integrated platform
Users can...
  • Experience consistency and predictability
  • Enjoy greater security of sensitive information and operations
Device Vendors can
  • Rely on a secure mobile application platform
  • Offer software that engages with enterprise applications
Developers can...
  • Draw on rich sets of APIs at all levels
  • Enjoy the safety and productivity of the Java programming language
  • Target multiple devices from a single platform
  • Apply their J2SE skills
  • Reuse code developed for J2SE-based applications
  • Work with tools compatible with standard J2SE developer toolsets
Service Providers can...
  • Provide scalable offerings to enterprises
  • Deploy mobile applications that are secure
The CDC Product Family
Java ME technology is delivered in API bundles called configurations, profiles, and optional packages. A Java ME application environment includes both a configuration like CDC and a profile like the Personal Profile. Optional packages add capability in specific areas of functionality, such as database connectivity and remote method invocation. The ability to choose from among the various bundles enables product designers and developers to match software capabilities with hardware capabilities very closely. They can use APIs that give them easy access to the components a particular kind of device actually has, without the overhead of APIs designed for capabilities the device doesn't support.
The CDC Configuration
A configuration provides the most basic set of libraries and virtual-machine features that must be present in each implementation of a Java ME environment. When coupled with one or more profiles, the Connected Device Configuration gives developers a solid Java platform for creating applications for consumer and embedded devices.

A profile is a set of standard APIs that support a narrower category of devices within the framework of a chosen configuration. A specific profile is combined with a configuration like CDC to provide a complete Java application environment for the target device class. CDC supports three profiles. Note that these build on each other; for example, all the APIs of the Foundation Profile are also available in the other two:

Optional Packages

An optional package is a set of technology-specific APIs that extends the functionality of a Java application environment. CDC supports a number of optional packages that allow product designers to balance the functionality needs of a design against its resource constraints.

  • The RMI Optional Package provides a subset of J2SE RMI for networked consumer and embedded devices. It exposes distributed-application protocols through Java interfaces, classes, and method invocations, and insulates the developer from the details of network communications.
  • The JDBC Optional Package provides a subset of the JDBC 3.0 API that gives Java-based applications access to tabular data sources, including spreadsheets and flat files, as well as cross-DBMS connectivity to a wide range of relational databases.
Reference Implementations
The reference implementations for the CDC-based profiles are based on Linux running on an Intel-compatible PC. The Java virtual machine included in the CDC reference implementations contains only the interpreter portion of the virtual machine.
Optimized Implementations
Optimized implementations of CDC-based profiles are available for a variety of CPUs and operating systems. Portability interfaces enable vendors to modify implementations for new target platforms rapidly. It allows use of easily retargetable RISC-based processors and POSIX-compliant operating systems.
Technology Compatibility Kit
Technology Compatibility Kits (TCKs) can be licensed from Sun to certify the implementation of a Java ME profile for a specific platform. Implementers seeking more information about licensing terms should contact a sales representative.
Target Devices

The CDC configuration was designed to bring the many advantages of the Java platform to a broad range of network-connected consumer and embedded devices, including smart communicators, high-end PDAs, and set-top boxes.

Devices that support CDC typically include a 32-bit microprocessor/controller and make about 2 MB of RAM and 2.5 MB of ROM available to the Java application environment.


  • J2SE-based class library
  • No GUI support
  • CLDC 1.0 compatibility library
Personal Basis
  • Lightweight component support
  • Xlet support
  • Foundation Profile APIs
  • Full AWT support
  • Applet support
  • Migration path for PersonalJava technology
  • Personal Basis Profile APIs, including Foundation Profile APIs
Getting Started
Related Links

Oracle is reviewing the Sun product roadmap and will provide guidance to customers in accordance with Oracle's standard product communication policies. Any resulting features and timing of release of such features as determined by Oracle's review of roadmaps, are at the sole discretion of Oracle. All product roadmap information, whether communicated by Sun Microsystems or by Oracle, does not represent a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. It is intended for information purposes only, and may not be incorporated into any contract.