No matter the size of your company, Azul offers competitive pricing options to fit your needs, your budget, and your ambition.
No matter the size of your company, Azul offers competitive pricing options to fit your needs, your budget, and your ambition.
A Java version is a specific release of the Java platform, distributed as a Java Development Kit (JDK). Each version introduces language features, API additions, performance improvements, and security fixes. Oracle and the OpenJDK project ship a new release every six months, with Long-Term Support (LTS) releases every two years.
Since Java 10, the OpenJDK project follows a predictable six-month release cycle. LTS releases receive extended support and are the standard choice for production deployments.
| Release | Date | LTS | Features |
|---|---|---|---|
| Java 26 | March 2026 | No | HTTP/3 for the HTTP Client API (JEP 517), Remove the Applet API (JEP 504), Ahead-of-Time Object Caching with Any GC (JEP 516), G1 GC Improve Throughput by Reducing Synchronization (JEP 522), Prepare to Make Final Mean Final (JEP 500) |
| Java 25 | September 2025 | Yes | Scoped Values (JEP 506), Compact Source Files and Instance Main Methods (JEP 512), Module Import Declarations (JEP 511), Flexible Constructor Bodies (JEP 513), Ahead-of-Time Method Profiling (JEP 515), Compact Object Headers (JEP 519), Key Derivation Function API (JEP 510), Remove the 32-bit x86 Port (JEP 503) |
| Java 24 | March 2025 | No | Stream Gatherers (JEP 485), Class-File API (JEP 484), Ahead-of-Time Class Loading and Linking (JEP 483), Synchronize Virtual Threads without Pinning (JEP 491), Quantum-Resistant Module-Lattice KEM (JEP 496) and DSA (JEP 497) |
| Java 23 | September 2024 | No | ZGC Generational Mode by Default (JEP 474), Markdown Documentation Comments (JEP 467), Deprecate sun.misc.Unsafe Memory-Access Methods (JEP 471) |
| Java 22 | March 2024 | No | Foreign Function and Memory API (JEP 454), Unnamed Variables and Patterns (JEP 456), Launch Multi-File Source-Code Programs (JEP 458), Region Pinning for G1 (JEP 423) |
| Java 21 | September 2023 | Yes | Virtual Threads (JEP 444), Pattern Matching for switch (JEP 441), Record Patterns (JEP 440), Sequenced Collections (JEP 431), Generational ZGC (JEP 439) |
| Java 17 | September 2021 | Yes | Sealed Classes (JEP 409), Strongly Encapsulate JDK Internals (JEP 403), Enhanced Pseudo-Random Number Generators (JEP 356), New macOS Rendering Pipeline (JEP 382), Remove RMI Activation (JEP 407) |
| Java 11 | September 2018 | Yes | HTTP Client (JEP 321), Local Variable Syntax for Lambda Parameters (JEP 323), Flight Recorder (JEP 328), TLS 1.3 (JEP 332), Single Source File Launch (JEP 330), Remove Java EE and CORBA Modules (JEP 320) |
| Java 8 | March 2014 | Yes | Lambda Expressions (JSR 335), Streams (JEP 107), Date and Time API (JSR 310), Default Methods in Interfaces (JSR 335) |
Non-LTS releases deliver features incrementally. LTS releases consolidate those features into a stable, supported baseline.
java –version
Output format: openjdk 25 build 12 or 1.8.0_421 (Java 8 notation). The –version flag works on Java 9+. For Java 8, use java -version (single hyphen).
Java versions follow a simple numbering scheme since Java 9:
Before Java 9, versions used a 1.x scheme: Java 8 was 1.8, Java 7 was 1.7, and so on.
Long-Term Support (LTS) releases are the foundation for production systems. They receive security patches, bug fixes, and backports for years after their initial release. Non-LTS releases introduce new features that stabilize by the next LTS.
| LTS | Non-LTS | |
|---|---|---|
| Support Duration | Multiple years | Six months (until next release) |
| Security Patches | Yes, for full lifecycle | Only until next release |
| Production Use | Recommended | Early access to new features |
| Examples | Java 8, Java 11, Java 17, Java 21, Java 25 | Java 26, Java 24, Java 23, Java 22, Java 18, Java 19, Java 20 |
The most widely deployed Java version. Still in production at many enterprises.
First LTS after the move to six-month releases. Removed Java EE modules (now Jakarta EE) and CORBA.
The second modern LTS. Strong encapsulation of JDK internals broke applications relying on reflection into JDK classes.
The current widely-adopted LTS. Virtual Threads are the headline feature, enabling millions of concurrent threads without platform thread overhead.
The latest LTS release.
Older Java versions stop receiving security patches. Running an unsupported JDK in production exposes your organization to known vulnerabilities with no vendor fixes.
| Concern | Reason |
|---|---|
| Security | EOL versions receive no CVE patches. Known exploits accumulate. |
| Performance | Each release brings GC improvements (ZGC, Shenandoah, G1 enhancements), JIT optimizations, and memory efficiency gains. |
| Language Features | Modern Java (Records, Pattern Matching, Virtual Threads) reduces boilerplate and improves readability. |
| Ecosystem Support | Frameworks (Spring Boot, Jakarta EE, Quarkus) drop support for older JDKs. Libraries follow. |
| Compliance | Regulations and enterprise policies often mandate supported software with active security patches. |
Azul Systems provides certified OpenJDK builds under the Azul Zulu product line, with commercial support for production deployments.
Azul Zulu JDK is a TCK-certified build of OpenJDK available for Linux, Windows, macOS, Docker, Kubernetes, and cloud marketplaces (AWS, Azure, GCP).
Azul supports all current and recent LTS releases, plus select non-LTS versions:
| Java Version | Azul Zulu Support |
|---|---|
| Java 26 | Available at GA. Support until next release. |
| Java 25 (LTS) | Full, Extended, and Lifetime Support phases. |
| Java 24 | Support until next release. |
| Java 23 | Support until next release. |
| Java 21 (LTS) | Full, Extended, and Lifetime Support phases. |
| Java 17 (LTS) | Full, Extended, and Lifetime Support phases. |
| Java 11 (LTS) | Full, Extended, and Lifetime Support phases. |
| Java 8 (LTS) | Full, Extended, and Lifetime Support phases. |
What Azul Provides