Java Compatibility Explorer
One canonical page for year-aligned compatibility across Java Language, JLS, Classes, JDK & Tools, runtime, and deployables.
Timeline explorer
Canonical row matrix
Exact JVM/class-file support map
One year, one stack, one compatibility story.
This page combines both compatibility viewpoints into one flagship experience. At the top, you can move year by year through a timeline explorer and see the compatible Java Language, JLS, Classes, and JDK & Tools combination for that point in time. Under that, the complete canonical table keeps the exact row-wise truth visible for comparison, copying, printing, and deeper study.
Primary mode
A left-panel timeline with a right-panel compatibility story so the page reads like the rest of the app.
Canonical truth
A full row matrix that keeps the exact compatible stack visible for every major Java year and release point.
Why it matters
Compatibility is cross-cutting. No matter which vertical you start from, the compatible stack converges here.
| Year | Java Language | JDK & Tools | Class File Format | Runtime | Build Tools | Final Deployable | Era |
|---|---|---|---|---|---|---|---|
| 1996 | Java 1 | JDK 1.0 | 45.3 | JRE 1.0 / Classic JVM | javac + shell scripts, early Makefile workflows | JAR, desktop app, applet | foundation |
| 1998 | Java 2 | JDK 1.2 | 46.0 | JRE 1.2 / Classic JVM + early HotSpot adoption | javac, Make, early Ant-era practices | JAR, Swing app, servlet/WAR | foundation |
| 2000 | Java 3 | JDK 1.3 | 47.0 | JRE 1.3 / HotSpot JVM | Ant emerging, javac script builds | JAR, WAR, EAR | foundation |
| 2002 | Java 4 | J2SE 1.4 | 48.0 | JRE 1.4 / HotSpot JVM | Ant, IDE-managed builds (Eclipse/NetBeans) | JAR, WAR, EAR | foundation |
| 2004 | Java 5 | JDK 5.0 | 49.0 | JRE 5.0 / HotSpot JVM | Ant, Maven 1/2 adoption | JAR, WAR, EAR | enterprise |
| 2006 | Java 6 | Java SE 6 | 50.0 | JRE 6 / HotSpot JVM | Ant, Maven 2 | JAR, WAR, EAR, rich client | enterprise |
| 2011 | Java 7 | Java SE 7 | 51.0 | JRE 7 / HotSpot JVM | Maven 2/3, Ant, Gradle early adoption | JAR, WAR, EAR, service JVM app | enterprise |
| 2014 | Java 8 | Java SE 8 | 52.0 | JRE 8 / HotSpot JVM | Maven 3, Gradle 2-8, Ant legacy support | Fat JAR, WAR, containerized JVM app | enterprise |
| 2017 | Java 9 | JDK 9 | 53.0 | No separate public JRE; modular runtime image / HotSpot JVM | Maven 3.5+, Gradle 4+, jlink-aware pipelines | Modular JAR, custom runtime image, container image | modular |
| 2018 | Java 10 | JDK 10 | 54.0 | Modular runtime image / HotSpot JVM | Maven 3.5+, Gradle 4.7+ | JAR, jlink runtime, container image | modular |
| 2018 | Java 11 | JDK 11 (LTS) | 55.0 | Modular runtime image / HotSpot JVM | Maven 3.6+, Gradle 5+, Ant legacy support | Fat JAR, WAR, jlink runtime, container image | modular |
| 2019 | Java 12 | JDK 12 | 56.0 | Modular runtime image / HotSpot JVM | Maven 3.6+, Gradle 5+ | JAR, jlink runtime, container image | modular |
| 2019 | Java 13 | JDK 13 | 57.0 | Modular runtime image / HotSpot JVM | Maven 3.6+, Gradle 6+ | JAR, jlink runtime, container image | modular |
| 2020 | Java 14 | JDK 14 | 58.0 | Modular runtime image / HotSpot JVM | Maven 3.6+, Gradle 6+ | JAR, jlink runtime, container image | modular |
| 2020 | Java 15 | JDK 15 | 59.0 | Modular runtime image / HotSpot JVM | Maven 3.6+, Gradle 6.7+ | JAR, jlink runtime, container image | modular |
| 2021 | Java 16 | JDK 16 | 60.0 | Modular runtime image / HotSpot JVM | Maven 3.8+, Gradle 7+ | JAR, jlink runtime, container image | modular |
| 2021 | Java 17 | JDK 17 (LTS) | 61.0 | Modular runtime image / HotSpot JVM | Maven 3.8+, Gradle 7+, modern CI pipelines | Fat JAR, WAR, jlink runtime, container image | modern |
| 2022 | Java 18 | JDK 18 | 62.0 | Modular runtime image / HotSpot JVM | Maven 3.8+, Gradle 7.4+ | JAR, jlink runtime, container image | modern |
| 2022 | Java 19 | JDK 19 | 63.0 | Modular runtime image / HotSpot JVM | Maven 3.8+, Gradle 7.6+ | JAR, jlink runtime, container image | modern |
| 2023 | Java 20 | JDK 20 | 64.0 | Modular runtime image / HotSpot JVM | Maven 3.9+, Gradle 8+ | JAR, jlink runtime, container image | modern |
| 2023 | Java 21 | JDK 21 (LTS) | 65.0 | Modular runtime image / HotSpot JVM | Maven 3.9+, Gradle 8+, modern container pipelines | Fat JAR, native image optional, jlink runtime, container image | modern |
| 2024 | Java 22 | JDK 22 | 66.0 | Modular runtime image / HotSpot JVM | Maven 3.9+, Gradle 8.6+ | JAR, jlink runtime, container image | current |
| 2024 | Java 23 | JDK 23 | 67.0 | Modular runtime image / HotSpot JVM | Maven 3.9+, Gradle 8.8+ | JAR, jlink runtime, container image | current |
| 2025 | Java 24 | JDK 24 | 68.0 | Modular runtime image / HotSpot JVM | Maven 3.9+, Gradle 8.10+ | JAR, jlink runtime, container image | current |
| 2025 | Java 25 | JDK 25 | 69.0 | Modular runtime image / HotSpot JVM | Maven 3.9+, Gradle 8.12+, modern CI/CD | JAR, jlink runtime, container image, native image optional | current |
| 2026 | Java 26 | JDK 26 | 70.0 | Modular runtime image / HotSpot JVM | Maven 3.9+, Gradle 9.x readiness, contemporary CI/CD | JAR, jlink runtime, container image, native image optional | current |
| 2027 | Java 29 | JDK 29 (planned LTS) | 73.0 (projected) | Projected modular runtime image / HotSpot JVM | Projected Maven 4.x readiness, Gradle 9.x+, modern cloud CI/CD | JAR, jlink runtime, container image, native image optional | future |
| 2029 | Java 33 | JDK 33 (projected LTS) | 77.0 (projected) | Projected modular runtime image / HotSpot JVM | Projected next-generation Maven/Gradle pipelines and policy-driven CI/CD | JAR, container image, native image, curated runtime image | future |
| 2031 | Java 37 | JDK 37 (projected LTS) | 81.0 (projected) | Projected modular runtime image / HotSpot JVM | Projected enterprise build stacks with deeper supply-chain automation | JAR, container image, native image, curated runtime image | future |
| 2033 | Java 41 | JDK 41 (projected LTS) | 85.0 (projected) | Projected modular runtime image / HotSpot JVM | Projected cloud-native build pipelines with stronger compliance automation | JAR, container image, native image, curated runtime image | future |
| Java Version | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Java 1.0 | ✔ | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x |
| Java 1.1 | ✔ | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x |
| Java 1.2 | ✔ | ✔ | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x |
| Java 1.3 | ✔ | ✔ | ✔ | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x |
| Java 1.4 | ✔ | ✔ | ✔ | ✔ | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x |
| Java 5 | ✔ | ✔ | ✔ | ✔ | ✔ | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x |
| Java 6 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x |
| Java 7 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x |
| Java 8 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x |
| Java 9 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x |
| Java 10 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x |
| Java 11 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x |
| Java 12 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | x | x | x | x | x | x | x | x | x | x | x | x | x | x |
| Java 13 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | x | x | x | x | x | x | x | x | x | x | x | x | x |
| Java 14 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | x | x | x | x | x | x | x | x | x | x | x | x |
| Java 15 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | x | x | x | x | x | x | x | x | x | x | x |
| Java 16 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | x | x | x | x | x | x | x | x | x | x |
| Java 17 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | x | x | x | x | x | x | x | x | x |
| Java 18 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | x | x | x | x | x | x | x | x |
| Java 19 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | x | x | x | x | x | x | x |
| Java 20 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | x | x | x | x | x | x |
| Java 21 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | x | x | x | x | x |
| Java 22 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | x | x | x | x |
| Java 23 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | x | x | x |
| Java 24 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | x | x |
| Java 25 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | x |
| Java 26 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
Support details
Treat this as an educational compatibility guide, then confirm exact vendor, framework, and deployment support for your
production workload. Future LTS rows are roadmap-based projections and should be revalidated against official release
plans over time.