There are two types of
Java programming language
Java is a high-level, general-purpose, memory-safe, object-oriented programming language. It is intended to let programmers ''write once, run anywhere'' ( WORA), meaning that compiled Java code can run on all platforms that support Jav ...
application programming interfaces (APIs):
* The official core Java API, contained in the Android (Google), SE (OpenJDK and Oracle),
MicroEJ. These packages (java.* packages) are the core Java language packages, meaning that programmers using the Java language had to use them in order to make any worthwhile use of the Java language.
* Optional APIs that can be downloaded separately. The specification of these APIs are defined according to many different organizations in the world (Alljoyn, OSGi, Eclipse, JCP, E-S-R, etc.).
The following is a partial list of application programming interfaces (APIs) for Java.
APIs
{, class="wikitable"
, -
! Name
! Acronym
! Available from
, -
,
Connected Limited Device Configuration The Connected Limited Device Configuration (CLDC) 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. The CLDC is combined with on ...
,
CLDC
,
Reference implementation
In the software development process, a reference implementation (or, less frequently, sample implementation or model implementation) is a program that implements all requirements from a corresponding specification. The reference implementation ...
i
available here, -
,
Java Telephony API
,
JTAPI
available here, -
, STM32 Java technology
, STM32Java
available here, -
,
MicroEJ embedded platform
, MicroEJ
available here
Following is a very incomplete list, as the number of APIs available for the Java platform is overwhelming.
;
Rich client platforms
*
Eclipse Rich Client Platform (RCP)
*
NetBeans Platform
;Office_compliant libraries
*
Apache POI
*
JXL - for
Microsoft Excel
Microsoft Excel is a spreadsheet editor developed by Microsoft for Microsoft Windows, Windows, macOS, Android (operating system), Android, iOS and iPadOS. It features calculation or computation capabilities, graphing tools, pivot tables, and a ...
*
JExcel - for
Microsoft Excel
Microsoft Excel is a spreadsheet editor developed by Microsoft for Microsoft Windows, Windows, macOS, Android (operating system), Android, iOS and iPadOS. It features calculation or computation capabilities, graphing tools, pivot tables, and a ...
;Compression
*
LZMA SDK, the Java implementation of the
SDK used by the popular
7-Zip
7-Zip is a free and open-source file archiver, a utility used to place groups of files within compressed containers known as "archives". It is developed by Igor Pavlov and was first released in 1999. 7-Zip has its own Archive file, archive forma ...
file archive software
available here
;JSON
*
Jackson (API)
;Game engines
*
Slick
*
jMonkey Engine
*
JPCT Engine
*
LWJGL
;Real-time libraries
Real time Java is a catch-all term for a combination of technologies that allows programmers to write programs that meet the demands of real-time systems in the Java programming language.
Java's sophisticated memory management, native support for threading and concurrency, type safety,
and relative simplicity have created a demand for its use in many
domains. Its capabilities have been enhanced to support real time
computational needs:
* Java supports a strict priority based threading model.
* Because Java threads support priorities, Java locking mechanisms support priority inversion avoidance techniques, such as priority inheritance or the priority ceiling protocol.
To overcome typical real time difficulties, the Java Community introduced a specification for real-time Java, JSR001. A number of implementations of the resulting ''Real-Time Specification for Java'' (RTSJ) have emerged, including a reference implementation from Timesys, IBM's WebSphere Real Time, Sun Microsystems's Java SE Real-Time Systems,
/sup> Aonix PERC or JamaicaVM from aicas.
The RTSJ addressed the critical issues by mandating a minimum (only two)
specification for the threading model (and allowing other models to be
plugged into the VM) and by providing for areas of memory
that are not subject to garbage collection, along with threads that are
not preempt able by the garbage collector. These areas are instead
managed using region-based memory management.
Real-Time Specification for Java
The ''Real-Time Specification for Java'' (RTSJ) is a set of interfaces and behavioral refinements that enable real-time computer programming in the Java programming language. RTSJ 1.0 was developed as JSR 1 under the Java Community Process, which approved the new standard in November, 2001. RTSJ 2.0 is being developed under JSR 282. A draft version is available at JSR 282 JCP Page. More information can be found at RTSJ 2.0
* Javolution
;Windowing libraries
* Standard Widget Toolkit (SWT)
;Physics libraries
* JBox2D
* JBullet
* dyn4j
See also
* Java Platform
Java is a set of computer software and specifications that provides a software platform for developing application software and deploying it in a cross-platform computing environment. Java is used in a wide variety of computing platforms fr ...
* Java ConcurrentMap
* List of Java frameworks
External links
APISonar - Search Java API examples
Java APIs