List of Java APIs
| Company type | Software APIs |
|---|---|
| Industry | Software development, Programming |
Area served | Worldwide |
| Products | Fundamental Java API (java.* packages), Supplementary APIs (e.g., JAI, JDO, JNDI, JPA, JSAPI, JOGL, etc.) |
There exist two main categories of Java APIs:
- The fundamental Java API, officially provided and integrated within platforms such as Android (Google), SE (OpenJDK and Oracle), and MicroEJ. The java.* package set constitutes the core Java language foundation essential for effective Java programming.
- Supplementary APIs that are optionally downloadable, developed and maintained by a variety of global organizations (including Alljoyn, OSGi, Eclipse, JCP, E-S-R, among others).
APIs
| Name | Acronym | Description and Version History | Available from |
|---|---|---|---|
| Java Advanced Imaging | JAI | Provides interfaces for advanced image processing programming models. | |
| Association for the standardization of embedded platforms | E-S-R consortium | here | |
| Java Data Objects | JDO | Defines specifications for persistence of Java objects. | |
| Android API | here | ||
| JavaHelp | Extensible help framework supporting applets, components, applications, operating systems, and devices. | available here | |
| Java Media Framework | JMF | Facilitates incorporation of audio, video, and time-based media within Java programs or applets. | |
| Java Naming and Directory Interface | JNDI | API designed for directory service access. | |
| Jakarta Persistence | JPA | Standard for object-relational mapping in Java. | available here |
| Java Speech API | JSAPI | Enables speech recognition and synthesis capabilities. | |
| Java 3D | J3D | Scene graph-oriented 3D graphics programming interface. | available here |
| Java OpenGL | JOGL | Wrapper library facilitating OpenGL usage in Java. | available here |
| Java USB for Windows | (none) | Supports USB communication within Java applications. | available here |
| RestFB | (none) | Java wrapper library for Facebook API integration. | available here |
| Twitter4j | (none) | Java client library for interacting with the Twitter API. | available here |
| Discord Java API | JDA | Java library providing access to Discord's API. | available here |
| Mixin | SpongePowered | Library that allows modification of existing codebases. | available here |
| Wikipedia4j | llmjava | Library designed to search and retrieve Wikipedia content programmatically. | available here |
| Oshi | oshi | Provides access to hardware information on computers. | available here |
| Google Guava | Core utility libraries offering collections, caching, primitive support, and more. | available here | |
| Apache Commons | Apache | Collection of reusable Java components including utilities for collections, math operations, and IO tasks. | available here |
| 'Log4j' | 'Apache' | 'Widely adopted logging framework.' | 'available here' |
| 'JUnit' | 'JUnit' | 'Renowned testing framework.' | 'available here' |
| 'Caffeine' | '(none)' | 'Library delivering high-performance caching solutions.' | 'available here' |
| 'Lombok' | '(none)' | 'Annotation-based tool to reduce boilerplate code.' | 'available here' |
| 'SLF4J' | '(none)' | 'Lightweight logging facade commonly used alongside Logback or Log4j.' | 'available here' |
| 'Retrofit' | '(none)' | 'Type-safe HTTP client tailored for Java and Android applications.' | 'available here' |
| 'OkHttp' | 'Square' | 'HTTP client featuring connection pooling and GZIP compression support.' | 'available here' |
| 'Gson' | 'Google' | 'Library for converting Java objects to JSON format and vice versa.' | 'available here' |
| 'Jackson' | 'FasterXML' | 'High-efficiency JSON processor.' | 'available here' |
| 'Kryo' | 'EsotericSoftware' | 'Fast serialization framework for object graphs.' | 'available here' |
| 'Apache Kafka' | 'Apache' | 'Distributed streaming platform designed for event processing.' | 'available here' |
| 'Netty' | '(none)' | 'Asynchronous event-driven networking framework.' | 'available here' |
| 'Vert.x' | 'Eclipse' | 'Toolkit supporting reactive distributed applications.' | 'available here' |
| 'Spring Framework' | 'Spring' | 'Extensive framework for developing Java applications.' | 'available here' |
| 'Micronaut' | '(none)' | 'Lightweight framework optimized for microservices and cloud-native development.' | 'available here' |
| 'Hibernate' | '(none)' | 'Robust object-relational mapping solution.' | 'available here' |
| 'Forge' | '(none)' | 'Popular modding API targeting Minecraft Java Edition.' | 'available here' |
| 'NeoForge' | '(none)' | 'Community-led fork of Forge aimed at Minecraft modding.' | 'available here' |
| 'Fabric' | '(none)' | 'Modular lightweight toolchain for Minecraft modding.' | 'available here' |
| 'Quilt' | '(none)'
'Community-driven fork of Fabric offering additional features.' 'available here' |
The above list represents only a fraction of the extensive range of Java APIs, demonstrating the broad scope of the platform's ecosystem.
- Office-compatible libraries
- Apache POI
- JXL - Supports Microsoft Excel formats
- JExcel - Provides Microsoft Excel support
- Compression tools
- LZMA SDK – Java implementation derived from 7-Zip's SDK
- JSON libraries
- Game development engines
- Real-time technologies
Real-time Java refers to a set of technologies enabling real-time system development using the Java language. Its sophisticated memory management mechanisms, native thread handling with concurrency support, type safety features, and simplicity have made it popular in sectors requiring deterministic timing.
Core characteristics include:
- Threading model based on strict priority scheduling.
- Mechanisms to prevent priority inversion through priority inheritance or ceiling protocols.
The Java Community defined JSR001 establishing the Real-Time Specification for Java (RTSJ), with implementations such as Timesys reference implementation, IBM WebSphere Real Time, Sun Microsystems' Java SE Real-Time Systems, Aonix PERC, and aicas’ JamaicaVM.
RTSJ addresses essential real-time challenges by specifying a minimal threading model and introducing memory areas exempt from garbage collection. These memory regions employ region-based management allowing threads to operate without interruption by garbage collector activity.
Real-Time Specification for Java
The Real-Time Specification for Java (RTSJ) establishes a set of interfaces and behavioral enhancements tailored for real-time application development within the Java environment. The initial version, RTSJ 1.0, was created under the Java Community Process as JSR 1 and received approval in November 2001. Currently, RTSJ 2.0 is being developed through JSR 282, with a draft version accessible online.
- Windowing toolkits
- Standard Widget Toolkit (SWT)
- Physics engines
- JBox2D
- JBullet
- dyn4j