There are three types of Java Programming Language Application Programming Interfaces (APIs) :
Third-parties can freely implement any JSR specifications for an official API (even for the core API of the language), providing that they conform to the Technology Compatibility Kit (TCK) for this JSR (the TCK is a suite of tests that checks conformance of implementations for a JSR). The result of this freedom is that many official APIs have more implementations than the Sun's Reference implementation (RI).
The following is a partial list of Application Programming Interfaces (APIs) for the Java Programming Language.
Contents |
| Name | Acronym | Package(s) that contain the API | Description and Version History |
|---|---|---|---|
| Abstract Window Toolkit | AWT | java.awt | First released with version 1.0. |
| Java Collections Framework | JCF | java.util | Collection of standard data structures like Lists, Maps, Queues, Stacks. Included in J2SE 1.2 and later. |
| Swing | javax.swing | Included in J2SE 1.2 and later. | |
| Accessibility | |||
| Drag n Drop | java.awt.datatransfer java.awt.dnd[3] |
||
| Image I/O | javax.imageio javax.imageio.*[4] |
||
| Sound | javax.sound.midi javax.sound.midi.spi javax.sound.sampled javax.sound.sampled.spi[5] |
||
| Java Database Connectivity | JDBC | java.sql javax.sql[6] |
|
| Java Cryptography Extension | JCE | javax.crypto javax.crypto.interfaces javax.crypto.spec[7] |
Included as part of J2SE 1.4 and later. Available as an optional package to versions 1.2 and 1.3. |
| Java Authentication and Authorization Service | JAAS | javax.security.auth | Included in J2SE 1.4 and later, previously released as an optional package with version 1.3. |
| Java Secure Socket Extension | JSSE | javax.net javax.net.ssl java.security.cert[8] |
A set of packages that enable secure Internet communications. Included as part of J2SE 1.4 and later, JSSE 1.0.3 is an optional package to the Java 2 SDK, versions 1.2 and 1.3. |
| Java Native Interface | JNI | Allows Java code running in the Java virtual machine (JVM) to call and be called[1] by native applications (programs specific to a hardware and operating system platform) and libraries written in other languages, such as C, C++ and assembly. | |
| Java Management Extensions | JMX | javax.management javax.management.loading javax.management.modelmbean javax.management.monitor javax.management.openmbean javax.management.relation javax.management.remote javax.management.remote.rmi javax.management.timer |
A technology that supplies tools for managing and monitoring applications, system objects, devices (e.g. printers) and service oriented networks. Included as part of J2SE 1.5 and later, was an optional package prior to this. |
| Name | Acronym | Description and Version History | Available from |
|---|---|---|---|
| Java Advanced Imaging | JAI | An API which provides a set of interfaces that support a high-level programming model allowing to manipulate images easily. | |
| Java Communications API | JCA | ||
| Java Data Objects | JDO | A specification of Java object persistence. | |
| JavaHelp | A full-featured, extensible help system that enables you to incorporate online help in applets, components, applications, operating systems, and devices. | ||
| Java Media Framework | JMF | An API that enables audio, video and other time-based media to be added to Java applications and applets. | |
| Java Naming and Directory Interface | JNDI | An API for directory services. | |
| Java Speech API | JSAPI | This API allows for speech synthesis | |
| Java 3D | J3D | A scene graph-based 3D API. | available here |
| Java OpenGL | JOGL | A wrapper library for OpenGL. | available here |
| Java Mail | (none) | A framework to build mail and messaging applications | available here |
| Name | Acronym | Java package(s) that contain the API |
|---|---|---|
| Java Message Service | JMS | |
| JavaServer Faces | JSF | javax.faces |
| Name | Acronym | Available from |
|---|---|---|
| Java API for XML-Based RPC | JAX-RPC | available here |
| Name | Acronym | Available from |
|---|---|---|
| Connected Limited Device Configuration | CLDC | Reference implementation is available here |
| Java Telephony API | available here |
This list is very incomplete, as the number of APIs available for the Java platform is overwhelming.
|
|