← Back to all briefings
Developer 5 min read Published Updated Credibility 90/100

Runtime Briefing — Java 17 long-term support release

Java 17 reached general availability on 14 September 2021 as the first LTS since Java 11, adding sealed classes, pattern matching enhancements, and stronger cryptography defaults that shape enterprise upgrade roadmaps through 2029.

Timeline plotting source publication cadence sized by credibility.
2 publication timestamps supporting this briefing. Source data (JSON)

Executive summary. Oracle and the OpenJDK community shipped Java 17 on 14 September 2021, delivering the first long-term support (LTS) release since Java 11 with sealed classes, pattern matching for switch, a new macOS rendering pipeline, and stronger TLS defaults.[1] The release anchors commercial support windows through at least 2029, prompting platform teams to plan migrations that consolidate JDK baselines, retire legacy garbage collectors, and adopt new language features that simplify defensive coding.

What changed

Language and JVM improvements

Java 17 finalizes sealed classes to constrain inheritance hierarchies, enhances pattern matching for switch, and provides a foreign-memory access API preview that improves performance for native interop. The G1 and ZGC collectors gain further latency improvements, and a new macOS Metal rendering pipeline replaces deprecated OpenGL bindings.

Security and crypto defaults

Stronger default algorithms (including disabling SHA-1 in code signing by default) and updates to TLS implementations reduce exposure to weak ciphers. The JDK also includes context-specific deserialization filters, which help application teams block gadget chains without custom agents.

Lifecycle and support planning

As an LTS, Java 17 will receive quarterly updates for multiple years from Oracle and other vendors. The release also removes outdated features (Applet API marked @Deprecated(forRemoval=true)) and eliminates the experimental AOT/JIT compiler interface introduced in earlier versions, simplifying downstream builds.

Implications for engineering leaders

Standardize on an LTS baseline

Moving to Java 17 lets organizations consolidate runtime support contracts and minimize the number of active JDK lines. Aligning microservices, batch jobs, and build agents on one LTS reduces CVE remediation sprawl and keeps security patches predictable.

Developer productivity and code hygiene

Sealed classes and pattern matching enable stricter domain models and exhaustiveness checks, improving readability and reducing boilerplate in defensive code paths. Platform teams should update coding standards and linters to encourage these constructs.

Modern macOS and container support

The Metal pipeline stabilizes UI testing on Apple Silicon, while container-awareness improvements in the JVM make resource limits more reliable. CI images should be refreshed to the latest container-aware JDK 17 builds to avoid surprise throttling.

Upgrade guidance

Assess dependency readiness

Verify that frameworks (Spring, Jakarta EE, Micronaut) and build tools (Maven, Gradle) declare Java 17 support. Update bytecode targets in build scripts and enable preview features only in controlled modules until team patterns mature.

Security baselines

Revisit keystores and signing pipelines to align with the stronger defaults—particularly the SHA-1 deprecation. Validate outbound mTLS configurations and regenerate SBOMs to capture the new cryptography baseline.

Performance validation

Benchmark workloads under G1 and ZGC to confirm pause-time expectations, especially for low-latency services. Capture JFR profiles to tune heap sizing with container limits and to identify third-party agents that may not be compatible with Java 17 modules.

Timeline plotting source publication cadence sized by credibility.
2 publication timestamps supporting this briefing. Source data (JSON)
Horizontal bar chart of credibility scores per cited source.
Credibility scores for every source cited in this briefing. Source data (JSON)

Continue in the Developer pillar

Return to the hub for curated research and deep-dive guides.

Visit pillar hub

Latest guides

  • Java
  • Runtimes
  • Security
  • Developer Productivity
  • Platform Upgrades
Back to curated briefings