List of Java APIs

Last updated

There are two types of Java programming language application programming interfaces (APIs):

Contents

The following is a partial list of application programming interfaces (APIs) for Java.

APIs

Name Acronym Description and Version HistoryAvailable from
Java Advanced Imaging JAIA set of interfaces that support a high-level programming model allowing to manipulate images easily.
Association for the standardization of embedded platformsE-S-R consortium here
Java Data Objects JDOA specification of Java object persistence.
Android APIGoogle here
JavaHelp A full-featured, extensible help system that enables you to incorporate online help in applets, components, applications, operating systems, and devices. available here
Java Media Framework JMFAn API that enables audio, video and other time-based media to be added to Java applications and applets.
Java Naming and Directory Interface JNDIAn API for directory services.
Jakarta Persistence JPAA specification for object-relational mapping. available here
Java Speech API JSAPIThis API allows for speech synthesis and speech recognition.
Java 3D J3DA scene graph-based 3D API. available here
Java OpenGL JOGLA wrapper library for OpenGL. available here
Java USB for Windows(none)A USB communication of Java applications available here
RestFB(none)Facebook API wrapper in Java. available here
Twitter4j(none)Java library for the Twitter API available here
Discord Java APIJDAJava library for the Discord API available here
MixinSpongePoweredThis library adds ability to change existing code available here
Wikipedia4jllmjavaIt's a library that you can use to search and retrieve documents from Wikipedia available here
OshioshiLibrary for working with Computer components and their parameters available here
GuavaGoogleA set of core Java libraries for collections, caching, primitives support, and more. available here
Apache CommonsApacheA collection of reusable Java components, including utilities for collections, math, IO, and more. available here
Log4jApacheA widely used Java logging library. available here
JUnitJUnitA widely used testing framework for Java. available here
Caffeine(none)A high-performance caching library for Java. available here
Lombok(none)A Java library that reduces boilerplate code with annotations. available here
SLF4J(none)A simple logging facade for Java, often used with Logback or Log4j. available here
Retrofit(none)A type-safe HTTP client for Java and Android. available here
OkHttpSquareAn HTTP client for Java with features like connection pooling and GZIP compression. available here
GsonGoogleA library for converting Java objects to JSON and back. available here
JacksonFasterXMLA high-performance JSON processing library. available here
KryoEsotericSoftwareA fast and efficient object graph serialization framework. available here
Apache KafkaApacheA distributed event streaming platform. available here
Netty(none)An asynchronous event-driven network application framework. available here
Vert.xEclipseA reactive toolkit for building distributed applications. available here
Spring FrameworkSpringA powerful framework for building Java applications. available here
Micronaut(none)A lightweight framework for building microservices and cloud-native apps. available here
Hibernate(none)A powerful ORM (Object-Relational Mapping) framework. available here
Forge(none)A popular Minecraft modding API for Java Edition. available here
NeoForge(none)A community-driven fork of Forge for Minecraft modding. available here
Fabric(none)A lightweight, modular Minecraft modding toolchain. available here
Quilt(none)A community-driven fork of Fabric with additional features. available here


Name Acronym Java package(s) that contain the API
Jakarta Activation JAFjakarta.activation
Jakarta Mail (none)jakarta.mail
Jakarta Messaging JMSjakarta.jms
Jakarta Faces JSFjakarta.faces
Name Acronym Available from
Jakarta XML RPC JAX-RPC here and here
XQuery API for Java XQJ here and here
NameAcronymAvailable from
Connected Limited Device Configuration CLDC Reference implementation is available here
Java Telephony API JTAPI available here
STM32 Java technologySTM32Java available here
MicroEJ embedded platformMicroEJ available here

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

Rich client platforms
Office_compliant libraries
Compression
JSON
Game engines
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:

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,[1] 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

Windowing libraries
Physics libraries

See also