List of Java APIs
Encyclopedia
There are three types of Java Programming Language
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

 Application Programming Interfaces (APIs)
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...

 :
  • the official core Java API, contained in the JDK
    Java Development Kit
    The Java Development Kit is an Oracle Corporation product aimed at Java developers. Since the introduction of Java, it has been by far the most widely used Java SDK. On 17 November 2006, Sun announced that it would be released under the GNU General Public License , thus making it free software...

     or JRE, of one of the editions of the Java Platform. The three editions of the Java Platform are Java ME (Micro edition)
    Java Platform, Micro Edition
    Java Platform, Micro Edition, or Java ME, is a Java platform designed for embedded systems . Target devices range from industrial controls to mobile phones and set-top boxes...

    , Java SE (Standard edition)
    Java Platform, Standard Edition
    Java Platform, Standard Edition or Java SE is a widely used platform for programming in the Java language. It is the Java Platform used to deploy portable applications for general use...

    , and Java EE (Enterprise edition)
    Java Platform, Enterprise Edition
    Java Platform, Enterprise Edition or Java EE is widely used platform for server programming in the Java programming language. The Java platform differs from the Java Standard Edition Platform in that it adds libraries which provide functionality to deploy fault-tolerant, distributed, multi-tier...

    .
  • optional official APIs that can be downloaded separately. The specification of these APIs are defined according to a Java Specification Request
    Java Community Process
    The Java Community Process or JCP, established in 1998, is a formalized process that allows interested parties to get involved in the definition of future versions and features of the Java platform....

     (JSR), and sometimes some of these APIs are later included in the core APIs of the platform (the most notable example of this kind is Swing
    Swing (Java)
    Swing is the primary Java GUI widget toolkit. It is part of Oracle's Java Foundation Classes — an API for providing a graphical user interface for Java programs....

    ).
  • unofficial APIs, developed by third parties, but not related to any JSRs.


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
Technology Compatibility Kit
A Technology Compatibility Kit is a suite of tests that at least nominally checks a particular alleged implementation of a Java Specification Request for compliance...

 (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
Sun Microsystems
Sun Microsystems, Inc. was a company that sold :computers, computer components, :computer software, and :information technology services. Sun was founded on February 24, 1982...

 Reference implementation (RI).

The following is a partial list of Application Programming Interfaces
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...

 (APIs) for the Java Programming Language
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

.

Optional Ganesh

Name Acronym
Acronym and initialism
Acronyms and initialisms are abbreviations formed from the initial components in a phrase or a word. These components may be individual letters or parts of words . There is no universal agreement on the precise definition of the various terms , nor on written usage...

Description and Version History Available from
Java Advanced Imaging
Java Advanced Imaging
Java Advanced Imaging is a Java platform extension API that provides a set of object-oriented interfaces that support a simple, high-level programming model which allows developers to create their own image manipulation routines without the additional cost or licensing restrictions, associated...

JAI An API which provides a set of interfaces that support a high-level programming model allowing to manipulate image
Image
An image is an artifact, for example a two-dimensional picture, that has a similar appearance to some subject—usually a physical object or a person.-Characteristics:...

s easily.
Java Communications API JCA
Java Data Objects
Java Data Objects
Java Data Objects is a specification of Java object persistence. One of its features is a transparency of the persistent services to the domain model. JDO persistent objects are ordinary Java programming language classes ; there's no requirement for them to implement certain interfaces or extend...

JDO A specification of Java object persistence
Persistence (computer science)
Persistence in computer science refers to the characteristic of state that outlives the process that created it. Without this capability, state would only exist in RAM, and would be lost when this RAM loses power, such as a computer shutdown....

.
JavaHelp
JavaHelp
JavaHelp refers to both an application and a format for online help files that can be displayed by the JavaHelp browser. It is written in Java, and is mainly used in Java applications...

A full-featured, extensible help system that enables you to incorporate online help in applets, components, applications, operating systems, and devices.
Java Media Framework
Java Media Framework
The Java Media Framework is a Java library that enables audio, video and other time-based media to be added to Java applications and applets...

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
Java Naming and Directory Interface
The Java Naming and Directory Interface is a Java API for a directory service that allows Java software clients to discover and look up data and objects via a name. Like all Java APIs that interface with host systems, JNDI is independent of the underlying implementation...

JNDI An API for directory service
Directory service
A directory service is the software system that stores, organizes and provides access to information in a directory. In software engineering, a directory is a map between names and values. It allows the lookup of values given a name, similar to a dictionary...

s.
Java Speech API
Java Speech API
The Java Speech API specifies a cross-platform interface to support command and control recognizers, dictation systems and speech synthesizers. Although JSAPI defines an interface only there are several implementations created by third parties, for example FreeTTS.- Core technologies :Two core...

JSAPI This API allows for speech synthesis
Speech synthesis
Speech synthesis is the artificial production of human speech. A computer system used for this purpose is called a speech synthesizer, and can be implemented in software or hardware...

 and speech recognition
Speech recognition
Speech recognition converts spoken words to text. The term "voice recognition" is sometimes used to refer to recognition systems that must be trained to a particular speaker—as is the case for most desktop recognition software...

.
Java 3D
Java 3D
Java 3D is a scene graph-based 3D application programming interface for the Java platform. It runs atop either OpenGL or Direct3D. Since version 1.2, Java 3D has been developed under the Java Community Process....

J3D A scene graph
Scene graph
A scene graph is a general data structure commonly used by vector-based graphics editing applications and modern computer games. Examples of such programs include Acrobat 3D, Adobe Illustrator, AutoCAD, CorelDRAW, OpenSceneGraph, OpenSG, VRML97, and X3D....

-based 3D
3D computer graphics
3D computer graphics are graphics that use a three-dimensional representation of geometric data that is stored in the computer for the purposes of performing calculations and rendering 2D images...

 API.
available here
Java OpenGL
Java OpenGL
Java OpenGL is a wrapper library that allows OpenGL to be used in the Java programming language. It was originally developed by Kenneth Bradley Russell and Christopher John Kline, and was further developed by the Sun Microsystems Game Technology Group. Since 2010, it has been an independent open...

JOGL A wrapper
Adapter pattern
In computer programming, the adapter pattern is a design pattern that translates one interface for a class into a compatible interface...

 library for OpenGL
OpenGL
OpenGL is a standard specification defining a cross-language, cross-platform API for writing applications that produce 2D and 3D computer graphics. The interface consists of over 250 different function calls which can be used to draw complex three-dimensional scenes from simple primitives. OpenGL...

.
available here
Java Mail (none) A framework to build mail and messaging applications available here
Java USB for Windows (none) A USB communication of Java applications available here

Bundled APIs (part of standard download)

Name Acronym
Acronym and initialism
Acronyms and initialisms are abbreviations formed from the initial components in a phrase or a word. These components may be individual letters or parts of words . There is no universal agreement on the precise definition of the various terms , nor on written usage...

Java package
Java package
A Java package is a mechanism for organizing Java classes into namespaces similar to the modules of Modula. Java packages can be stored in compressed files called JAR files, allowing classes to download faster as a group rather than one at a time...

(s) that contain the API
Java Message Service
Java Message Service
The Java Message Service API is a Java Message Oriented Middleware API for sending messages between two or more clients. JMS is a part of the Java Platform, Enterprise Edition, and is defined by a specification developed under the Java Community Process as JSR 914...

JMS
JavaServer Faces
JavaServer Faces
JavaServer Faces is a Java-based Web application framework intended to simplify development integration of web-based user interfaces....

JSF javax.faces

Optional APIs (downloaded separately)

Name Acronym
Acronym and initialism
Acronyms and initialisms are abbreviations formed from the initial components in a phrase or a word. These components may be individual letters or parts of words . There is no universal agreement on the precise definition of the various terms , nor on written usage...

Available from
Java API for XML-Based RPC
JAX-RPC
Java API for XML-based RPC allows a Java application to invoke a Java-based Web Service with a known description while still being consistent with its WSDL description. It can be seen as Java RMIs over Web services. JAX-RPC 2.0 was renamed JAX-WS 2.0 . JAX-RPC 1 is deprecated with Java EE 6...

JAX-RPC available here

Java Platform, Micro Edition (Java ME)

Name Acronym Available from
Connected Limited Device Configuration
Connected Limited Device Configuration
The Connected Limited Device Configuration is a specification of a framework for Java ME applications describing the basic set of libraries and virtual-machine features that must be present in an implementation...

CLDC Reference implementation is available here
Java Telephony API
Java Telephony API
The Java Telephony API supports telephony call control. It is an extensible application programming interface designed to scale for use in a range of domains, from first-party call control in a consumer device to third-party call control in large distributed call centers.-External links:*****...

available here

Unofficial APIs (Released by third parties)

This list is very incomplete, as the number of APIs available for the Java platform is overwhelming.

Rich Client Platforms
  • Eclipse Rich Client Platform (RCP)
    Eclipse (software)
    Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system...

  • NetBeans Platform
    NetBeans
    NetBeans refers to both a platform framework for Java desktop applications, and an integrated development environment for developing with Java, JavaScript, PHP, Python, Groovy, C, C++, Scala, Clojure, and others...



Office_compliant libraries
  • Apache POI


Compression
  • LZMA
    LZMA
    The Lempel–Ziv–Markov chain algorithm is an algorithm used to perform data compression. It has been under development since 1998 and was first used in the 7z format of the 7-Zip archiver...

     SDK, the Java implementation of the SDK
    Software development kit
    A software development kit is typically a set of software development tools that allows for the creation of applications for a certain software package, software framework, hardware platform, computer system, video game console, operating system, or similar platform.It may be something as simple...

     used by the popular 7-Zip
    7-Zip
    7-Zip is an open source file archiver. 7-Zip operates with the 7z archive format, but can read and write several other archive formats. The program can be used from a command line interface, graphical user interface, or with Microsoft Windows shell integration. 7-Zip began in 1999 and is actively...

     file archive software (available here)


Development assistance
  • Lady4j. Programming assistant and application server issue solver. (available here)
  • Cobra HTML parser and renderer library.
  • JScripter(short for JS) is a set of open source Java libraries and specifications. It allows Java developers to easily make large JavaScript applications.


Numerical analysis
  • JScience


Game engines
  • jMonkey Engine
    JMonkey Engine
    jMonkeyEngine is a game engine made especially for modern 3D development, as it uses shader technology extensively. jMonkeyEngine is written purely in Java and uses LWJGL as its default renderer. OpenGL 2 through OpenGL 4 is fully supported....

  • LWJGL
    Lightweight Java Game Library
    The Lightweight Java Game Library is an open source Java software library for computer game developers.LWJGL exposes high performance cross-platform libraries commonly used in developing software games and multimedia titles...



Real-time libraries
  • Javolution
    Javolution
    Javolution is a real-time library aiming to make Java applications faster and more time predictable. Indeed, time-predictability can easily be ruined by the use of the standard library Javolution is a real-time library aiming to make Java applications faster and more time predictable. Indeed,...



Rendering libraries
  • Flying Saucer
    Flying saucer (library)
    Flying Saucer is a pure Java library for rendering XML, XHTML, and CSS 2.1 content.It is intended for embedding web-based user interfaces into Java applications, but cannot be used as a general purpose web browser since it does not support HTML.Thanks to its capability to save rendered XHTML to...

     XML
    XML
    Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....

    , XHTML
    XHTML
    XHTML is a family of XML markup languages that mirror or extend versions of the widely-used Hypertext Markup Language , the language in which web pages are written....

    , and CSS 2.1
    Cascading Style Sheets
    Cascading Style Sheets is a style sheet language used to describe the presentation semantics of a document written in a markup language...

     rendering library.
  • Cobra HTML parser and renderer library.


Windowing libraries
  • Standard Widget Toolkit
    Standard Widget Toolkit
    The Standard Widget Toolkit is a graphical widget toolkit for use with the Java platform. It was originally developed by IBM and is now maintained by the Eclipse Foundation in tandem with the Eclipse IDE...

     (SWT)


See also

  • Java (programming language)
    Java (programming language)
    Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

  • Java Platform
  • Application programming interface
    Application programming interface
    An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...

  • JavaMail
    Javamail
    JavaMail is a Java API used to receive and send email via SMTP, POP3 and IMAP. JavaMail is built into the Java EE platform, but also provides an optional package for use in Java SE.On March 2, 2009, JavaMail 1.4.2 was released....

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK