Java 21 / JDK 21: General Availability

Mark Reinhold mark.reinhold at
Tue Sep 19 13:18:09 UTC 2023

JDK 21, the reference implementation of Java 21, is now Generally
Available.  We shipped build 35 as the first and only Release Candidate
of JDK 21 on 11 August, and no P1 bugs have been reported since then.
Build 35 is therefore now the GA build, ready for production use.

GPL-licensed OpenJDK builds from Oracle are available here:

Builds from other vendors will no doubt be available soon.

This release includes fifteen JEPs [1], including the final versions of
Record Patterns (440), Pattern Matching for switch (441), and Virtual
Threads (444):

  430: String Templates (Preview)
  431: Sequenced Collections
  439: Generational ZGC
  440: Record Patterns
  441: Pattern Matching for switch
  442: Foreign Function & Memory API (Third Preview)
  443: Unnamed Patterns and Variables (Preview)
  444: Virtual Threads
  445: Unnamed Classes and Instance Main Methods (Preview)
  446: Scoped Values (Preview)
  448: Vector API (Sixth Incubator)
  449: Deprecate the Windows 32-bit x86 Port for Removal
  451: Prepare to Disallow the Dynamic Loading of Agents
  452: Key Encapsulation Mechanism API
  453: Structured Concurrency (Preview)

This release also includes, as usual, hundreds of smaller enhancements
and thousands of bug fixes.

JDK 21 will be a long-term-support (LTS) release from most vendors,
including Oracle.  If you’re upgrading from the previous LTS release,
JDK 17, then you have many more JEPs to look forward to, summarized

Thank you to everyone who contributed this release, whether by designing
and implementing features or enhancements, by fixing bugs, or by
downloading and testing the early-access builds!

- Mark


More information about the announce mailing list