JDK Releases

The release information on this page covers the JDK releases that were widely distributed or significant to the development of Java. It does not cover releases with limited distribution such as restricted builds and one-off, customer-specific releases.

Timeline of past and future JDK releases
Planned (1)
AnchorDateVersionOther Information
2028-09-19 JDK 31
2028-07-18 30.0.2, 29.0.4, 25.0.12, 21.0.20, 17.0.28, 11.0.40, 8u581
2028-04-18 30.0.1, 29.0.3, 25.0.11, 21.0.19, 17.0.27, 11.0.39, 8u571
2028-03-21 JDK 30
2028-01-18 29.0.2, 25.0.10, 21.0.18, 17.0.26, 11.0.38, 8u561
2027-10-19 29.0.1, 25.0.9, 21.0.17, 17.0.25, 11.0.37, 8u551
2027-09-21 JDK 29 LTS
2027-07-20 28.0.2, 25.0.8, 21.0.16, 17.0.24, 11.0.36, 8u541
2027-04-20 28.0.1, 25.0.7, 21.0.15, 17.0.23, 11.0.35, 8u531
2027-03-23 JDK 28 Early Access
2027-01-19 27.0.2, 25.0.6, 21.0.14, 17.0.22, 11.0.34, 8u521
2026-10-20 27.0.1, 25.0.5, 21.0.13, 17.0.21, 11.0.33, 8u511
2026-09-15 JDK 27 Early Access, JSR 402
Released
AnchorDateVersionOther Information
2026-08-18 26.0.2.1 Risk Matrix
25.0.4.1
21.0.12.1
17.0.20.1
11.0.32.1
8u503
2026-07-21 26.0.2 Risk Matrix
25.0.4
21.0.12
17.0.20
11.0.32
8u501
2026-04-21 26.0.1 Risk Matrix
25.0.3
21.0.11
17.0.19
11.0.31
8u491
2026-03-17 JDK 26 Documentation, JSR 401, Configurations
2026-01-20 25.0.2 Risk Matrix
21.0.10
17.0.18
11.0.30
8u481
2025-10-21 25.0.1 Risk Matrix
21.0.9
17.0.17
11.0.29
8u471
2025-09-16 JDK 25 LTS Documentation, JSR 400, Configurations
2025-07-15 24.0.2 Risk Matrix
21.0.8
17.0.16
11.0.28
8u461
2025-04-15 24.0.1 Risk Matrix
21.0.7
17.0.15
11.0.27
8u451
2025-03-18 JDK 24 Documentation, JSR 399, Configurations
2025-01-21 23.0.2 Risk Matrix
21.0.6
17.0.14
11.0.26
8u441
2024-10-15 23.0.1 Risk Matrix
21.0.5
17.0.13
11.0.25
8u431
2024-09-17 JDK 23 Documentation, JSR 398, Configurations
2024-07-16 22.0.2 Risk Matrix
21.0.4
17.0.12
11.0.24
8u421
2024-04-16 22.0.1 Risk Matrix
21.0.3
17.0.11
11.0.23
8u411
2024-03-19 JDK 22 Documentation, JSR 397, Configurations
2024-01-16 21.0.2 Risk Matrix
17.0.10
11.0.22
8u401
2023-10-17 21.0.1 Risk Matrix
17.0.9
11.0.21
8u391
2023-09-19 JDK 21 LTS Documentation, JSR 396, Configurations
2023-07-18 20.0.2 Risk Matrix
17.0.8
11.0.20
8u381
2023-04-18 20.0.1 Risk Matrix
17.0.7
11.0.19
8u371
2023-03-21 JDK 20 Documentation, JSR 395, Configurations
2023-01-17 19.0.2 Risk Matrix
17.0.6
11.0.18
8u361
2022-10-18 19.0.1 Risk Matrix
17.0.5
11.0.17
8u351
2022-09-20 JDK 19 Documentation, JSR 394, Configurations
2022-08-18 18.0.2.1
17.0.4.1
11.0.16.1
2022-07-19 18.0.2 Risk Matrix
17.0.4
11.0.16
8u341
7u351
2022-05-02 18.0.1.1
17.0.3.1
11.0.15.1
8u333
7u343
2022-04-19 18.0.1 Risk Matrix
17.0.3
11.0.15
8u331
7u341
2022-03-22 JDK 18 Documentation, JSR 393, Configurations
2022-01-18 17.0.2 Risk Matrix
11.0.14
8u321
7u331
2021-10-19 17.0.1 Risk Matrix
11.0.13
8u311
7u321
2021-09-14 JDK 17 LTS Documentation, JSR 392, Configurations
2021-07-20 16.0.2 Risk Matrix
11.0.12
8u301
7u311
2021-04-20 16.0.1 Risk Matrix
11.0.11
8u291
7u301
2021-03-16 JDK 16 Documentation, JSR 391, Configurations
2021-01-19 15.0.2 Risk Matrix
11.0.10
8u281
7u291
2020-10-20 15.0.1 Risk Matrix
11.0.9
8u271
7u281
2020-09-15 JDK 15 Documentation, JSR 390, Configurations
2020-07-14 14.0.2 Risk Matrix
11.0.8
8u261
7u271
2020-04-14 14.0.1 Risk Matrix
11.0.7
8u251
7u261
2020-03-17 JDK 14 Documentation, JSR 389, Configurations
2020-01-14 13.0.2 Risk Matrix
11.0.6
8u241
7u251
2019-10-15 13.0.1 Risk Matrix
11.0.5
8u231
7u241
2019-09-17 JDK 13 Documentation, JSR 388, Configurations
2019-07-16 12.0.2 Risk Matrix
11.0.4
8u221
7u231
2019-04-16 12.0.1 Risk Matrix
11.0.3
8u212
8u211
7u221
2019-03-19 JDK 12 Documentation, JSR 386, Configurations
2019-01-15 11.0.2 Risk Matrix
8u202
8u201
7u211
2018-10-16 11.0.1 Risk Matrix
8u192
8u191
7u201
6u211
2018-09-25 JDK 11 LTS Documentation, JSR 384, Configurations
2018-07-17 10.0.2 Risk Matrix
8u181
7u191
6u201
2018-04-17 10.0.1 Risk Matrix
8u172
8u171
7u181
6u191
2018-03-20 JDK 10 Documentation, JSR 383, Configurations
2018-01-16 9.0.4 Risk Matrix
8u162
8u161
7u171
6u181
2017-10-17 9.0.1 Risk Matrix
8u152
8u151
7u161
6u171
2017-09-21 JDK 9 Documentation, JSR 379, Configurations
2017-07-26 8u144
2017-07-18 8u141 Risk Matrix
7u151
6u161
2017-04-18 8u131 Risk Matrix
7u141
6u151
2017-01-17 8u121 Risk Matrix
7u131
6u141
2016-10-18 8u112 Risk Matrix
8u111
7u121
6u131
2016-07-19 8u102 Risk Matrix
8u101
7u111
6u121
2016-04-19 8u92 Risk Matrix
8u91
7u101
6u115
2016-03-23 8u77 Risk Matrix
7u99
2016-02-05 8u74 Risk Matrix
8u73
7u97
6u113
2016-01-19 8u72 Risk Matrix
8u71
7u95
6u111
2015-10-20 8u66 Risk Matrix
8u65
7u91
6u105
2015-08-18 8u60 Configurations
2015-07-14 8u51 Risk Matrix
7u85
6u101
2015-04-14 8u45 Risk Matrix
7u80
7u79
6u95
5.0u85
2015-03-03 8u40 Configurations
2015-01-20 8u31 Risk Matrix
7u76
7u75
6u91
5.0u81
2014-10-14 8u25 Risk Matrix
7u72
7u71
6u85
5.0u75
2014-08-19 8u20 Configurations
2014-08-04 7u67
2014-07-15 8u11 Risk Matrix
7u65
6u81
5.0u71
2014-05-28 7u60 Configurations
2014-04-15 8u5 Risk Matrix
7u55
6u75
5.0u65
2014-03-18 JDK 8 LTS Documentation, JSR 337, Configurations
2014-01-14 7u51 Risk Matrix
6u71
5.0u61
2013-10-15 7u45 Risk Matrix
6u65
5.0u55
2013-09-10 7u40 Configurations
6u60
2013-06-18 7u25 Risk Matrix
6u51
5.0u51
2013-04-16 7u21 Risk Matrix
6u45
5.0u45
2013-03-04 7u17 Risk Matrix
6u43
5.0u41
2013-02-19 7u15 Risk Matrix
6u41
5.0u40
1.4.2_42
2013-02-01 7u13 Risk Matrix
6u39
5.0u39
1.4.2_41
2013-01-13 7u11 Risk Matrix
2012-12-11 7u10 Configurations
6u38
2012-10-16 7u9 Risk Matrix
6u37
5.0u38
1.4.2_40
2012-08-30 7u7 Risk Matrix
6u35
2012-08-14 7u6 Configurations
6u34
2012-06-12 7u5 Risk Matrix
6u33
5.0u36
1.4.2_38
2012-04-26 7u4 Configurations
6u32
5.0u35
1.4.2_37
2012-02-14 7u3 Risk Matrix
6u31
5.0u34
1.4.2_36
2011-12-12 7u2 Configurations
6u30
5.0u33
1.4.2_35
2011-10-18 7u1 Risk Matrix
6u29
5.0u32
1.4.2_34
1.3.1_32
2011-08-16 6u27
5.0u31
1.4.2_33
2011-07-11 JDK 7 LTS Documentation, JSR 336, Configurations
2011-06-07 6u26 Risk Matrix
5.0u30
1.4.2_32
1.3.1_31
2011-04-21 6u25 Configurations
5.0u29
1.4.2_31
2011-02-15 6u24 Risk Matrix
5.0u28
1.4.2_30
2010-12-13 5.0u27
1.4.2_29
2010-12-07 6u23
2010-10-18 6u22m
2010-10-12 6u22 Risk Matrix
5.0u26
1.4.2_28
1.3.1_29
2010-09-23 6u21p
2010-07-07 6u21 Configurations
5.0u25
1.4.2_27
2010-04-15 6u20
2010-03-30 6u19 Risk Matrix
5.0u24
1.4.2_26
1.3.1_28
2010-01-13 6u18
5.0u23
1.4.2_25
2009-11-03 6u17
5.0u22
1.4.2_24
1.3.1_27
2009-09-07 5.0u21
1.4.2_23
2009-08-10 6u16
2009-08-04 6u15
5.0u20
1.4.2_22
1.3.1_26
2009-05-29 6u14p
2009-05-28 6u14 Configurations
2009-05-19 5.0u19
1.4.2_21
2009-03-24 6u13
5.0u18
1.4.2_20
1.3.1_25
2009-02-02 6u12 Configurations
2008-12-02 6u11
5.0u17
1.4.2_19
1.3.1_24
2008-10-15 6u10 Configurations
2008-07-08 6u7
5.0u16
1.3.1_23
2008-07-01 6u6p
2008-06-08 1.4.2_18
2008-04-29 6u5p
2008-04-15 6u6
2008-03-04 6u5
5.0u15
1.4.2_17
1.3.1_22
2008-01-11 6u4 Configurations
2008-01-04 6u4p
2007-11-12 5.0u14
2007-10-22 1.3.1_21
2007-10-02 5.0u13
1.4.2_16
2007-09-28 6u3
2007-07-03 6u2 Configurations
2007-06-26 1.4.2_15
2007-05-20 5.0u12
2007-03-28 1.4.2_14
2007-03-13 6u1
2007-02-14 1.3.1_20
2007-01-29 5.0u11
2007-01-12 1.2.2_018
1.2.2_18
2006-12-12 JDK 6 LTS Documentation, JSR 270, Configurations
2006-11-29 5.0u10
2006-11-02 1.4.2_13
2006-10-19 5.0u9
2006-09-12 1.3.1_19
2006-08-08 5.0u8
2006-06-01 1.4.2_12
2006-05-24 5.0u7
2006-03-21 1.3.1_18
2006-02-27 1.4.2_11
2005-12-15 1.3.1_17
2005-12-02 5.0u6
2005-10-31 1.4.2_10
2005-09-15 5.0u5
2005-08-10 1.4.2_09
2005-06-23 5.0u4
2005-05-31 1.3.1_16
2005-04-28 5.0u3
2005-03-31 1.4.2_08
2005-03-11 5.0u2
2005-01-24 1.4.2_07
2004-12-20 5.0u1
2004-12-15 1.3.1_15
2004-11-22 1.3.1_14
2004-10-11 1.4.2_06
2004-09-30 5.0 Documentation, JSR 176, Configurations
2004-08-31 1.3.1_13
2004-06-30 1.4.2_05
2004-06-07 1.3.1_12
2004-03-08 1.4.2_04
2004-02-26 1.3.1_11
2004-01-30 1.4.1_07
2003-12-16 1.3.1_10
2003-12-15 1.4.2_03
2003-11-18 1.4.1_06
2003-10-29 1.4.1_05
2003-10-17 1.4.2_02
2003-10-02 1.2.2_017
1.2.2_17
2003-08-25 1.4.2_01
2003-08-08 1.3.1_09
2003-07-24 1.4.1_04
2003-06-27 1.2.2_016
1.2.2_16
2003-06-26 1.4.2 Configurations
2003-05-29 1.4.1_03
2003-04-30 1.3.1_08
2003-04-09 1.2.2_015
1.2.2_15
2003-03-31 1.4.0_04
2003-02-27 1.4.1_02
2003-01-30 1.3.1_07
2002-12-02 1.4.1_01a
2002-11-14 1.4.0_03
2002-10-29 1.2.2_014
1.2.2_14
2002-10-22 1.3.1_06
2002-10-16 1.4.1_01
2002-10-09 1.1.8_010
2002-10-03 1.3.1_05
2002-09-19 1.4.1
2002-09-09 1.4.0_02
2002-07-31 1.2.2_13
1.2.2_013
2002-07-10 1.4.0_01
1.4.0_01a
2002-06-28 1.3.1_04
2002-04-25 1.2.2_012
1.2.2_12
2002-03-28 1.3.1_03
2002-02-20 1.1.8_009
2002-02-13 1.4.0 JSR 59
2002-01-31 1.2.2_11
1.2.2_011
2001-12-20 1.3.1_02
2001-11-29 1.3.0_05
2001-11-01 1.2.2_010
1.2.2_10
2001-10-19 1.3.1_01a
2001-09-04 1.3.1_01
2001-08-30 1.3.0_04
2001-07-26 1.2.2_09
1.2.2_009
2001-06-28 1.1.8_008
2001-05-17 1.3.1
2001-05-03 1.2.2_008
1.2.2_08
2001-03-28 1.3.0_03
1.1.8_13
1.1.8_007
2001-02-28 1.3.0_02
2000-12-21 1.2.2_07
1.2.2_007
1.1.8_006
2000-11-08 1.3.0_01
2000-08-25 1.1.6_009
2000-08-21 1.1.8_12
2000-08-18 1.1.8_11
1.1.8_005
2000-07-17 1.1.6_008
2000-07-12 1.2.2_06
1.2.2_006
2000-05-18 1.1.8_004
2000-05-08 1.3.0
2000-05-05 1.2.2_05
1.2.2_005
2000-04-17 1.2.2_05a
2000-03-20 1.2.2_004
2000-03-17 1.1.8_003
1999-10-29 1.1.6_007
1999-10-15 1.2.2_003
1999-10-05 1.2.2_002
1999-09-10 1.1.8_002
1999-09-02 1.2.2_001
1999-08-13 1.1.8_001
1999-07-08 1.2.2
1999-04-12 1.1.6_006
1999-04-08 1.1.8
1999-03-30 1.2.1
1999-03-12 1.1.6_005
1999-01-15 1.1.6_004
1998-12-04 1.2.0
1998-12-02 1.1.7B
1998-11-05 1.1.7A
1998-09-28 1.1.7
1998-04-24 1.1.6
1997-12-03 1.1.5
1997-09-12 1.1.4
1997-07-02 1.1.3
1997-05-30 1.1.2
1997-03-28 1.1.1
1997-02-18 1.1
1996-05-07 1.0.2
1996-03-15 1.0.1
1996-01-23 1.0
1995-05-23 1.0_alpha Released 31 years ago

(1) Future releases and release dates subject to change.

json


The naming, versioning and types of Java releases has changed a number of times; the information on this page is not a complete history and details may be missing from the very early releases.

Java Release Types

The release model and release types for Java changed significantly until around 2008-2010 where the current time based model was adopted with the following release types:

Current Java release types
Type Description
Feature Release Releases where the Specification of the Java SE Platform (see below) can be changed: APIs can be added, deprecated or removed.
Patch Release Unscheduled release to address critical (non vulnerability) issues.
Security Alert (SA) Unscheduled Patch release for vulnerability fixes.
CPU Release Releases contain fixes for vulnerabilities across all applicable release families at the same time. In addition general maintenance including new platform support is made available for release families with Long Term Support.

All JDK releases are cumulative and always contain the fixes from previous releases. It is recommended that releases that contain vulnerability fixes should be adopted as quickly as possible.

Release types that are no longer produced are:

Java release types no longer being produced
Type Description
Major Release Up to JDK 9 Major releases were driven by the content of new release and the date of the release would be moved out if new functionality was not ready. With the release of JDK 10 the release model was updated to be date driven (every six months) and the releases were renamed to Feature Releases to reflect that change.
Minor Release Release with a large number of fixes or introduces new functionality, port or OS upgrade.
PSU Release Patch Set Update (PSU) releases were released on the same day as a CPU and contained additional functional fixes as well as the vulnerability fixes, when there was a corresponding PSU then the CPU would not contain general bug fixes.
Update Release Focused on bug fixes and platform/3rd party updates and until the introduction of CPU releases also contained vulnerability fixes.
Security Release Until around 2008 vulnerabilities were fixed as they were ready in each release family and there was not the concept of a Security release apart from a few releases that were for a specific security fix. By 2008 vulnerabilities started to be fixed in a coordinated fashion across all applicable release families, three times a year.
Emergency Release (ER) Unscheduled releases for vulnerability (Security Alert - SA) or non-vulnerability (Emergency Release - ER) fixes.
Performance Release Releases (ending in p) focused on performance improvements and usually contained an updated version of HotSpot which was shipped with new performance benchmark results.

Java Release Dates

In 2013 the Java Security release model changed to be in line with the Oracle Critical Patch Update (CPU) schedule where CPU releases are released on the third Tuesday of January, April, July and October. Prior to April 2022 the rule was Tuesday closest to the 17th of those months. Full details can be found here, along with instructions on how to subscribe to CPU Alert notifications. Feature releases are scheduled for release in the middle of March and September. The exact dates are posted several months in advance on https://openjdk.java.net/projects/jdk.

Java Release Support Timeline

The length of time updates are provided for a Feature release is outlined in the Oracle Java SE Support Roadmap. Long Term Support (LTS) releases are indicated in the follow table with "LTS".

A summary of when Java release families will stop being supported
Release Family GA End Of Support Life (EOSL)
26 17th March 2026 September 2026
25 LTS 16th September 2025 September 2033
24 18th March 2025 September 2025
23 17th September 2024 March 2025
22 19th March 2024 September 2024
21 LTS 19th September 2023 September 2031
20 21st March 2023 September 2023
19 20th September 2022 March 2023
18 22nd March 2022 September 2022
17 LTS 14th September 2021 September 2029
16 16th March 2021 September 2021
15 15th September 2020 March 2021
14 17th March 2020 September 2020
13 17th September 2019 March 2020
12 19th March 2019 September 2019
11 LTS 25th September 2018 January 2032
10 20th March 2018 September 2018
9 21st September 2017 March 2018
8 LTS 18th March 2014 December 2030
7 LTS 11th July 2011 July 2022
6 LTS 12th December 2006 December 2018
5 LTS 30th September 2004 July 2015
4 LTS 13th February 2002 March 2013
3 LTS 8th May 2000 April 2011
2 LTS 4th December 1998 December 2003
1.1 LTS 28th March 1997 January 2003
1.0 LTS 23rd January 1996 October 2002

Java Release Naming and Numbering

When first released Java was named Java Development Kit and abbreviated as JDK. With the release of Java version 2 there was a rebranding to Java 2 - full name: Java 2 Software Development Kit, abbreviated to Java 2 SDK or J2SDK. With the release of JDK 6 we went back to using JDK without the “2”.

The Java version-string format has changed several times throughout the years. The following table outlines the main changes.

History of Java release version numbering
Release Families Numbering
10 and above JEP 322 refined the version numbering further to match the now time based release model.
9 With JDK 9 there was an effort to redesign the by now complex numbering from scratch as part of JEP 223.
6, 7, 8 With JDK 6 Minor numbers were dropped from the Product Version. During this period the update numbering went through various iterations moving from incrementing by 1, then 2, followed by increments of 5 and finally 10 - it also became standard for the CPUs to have odd version numbers, and updates even.
5.0 JDK 5.0 dropped the leading 1(Major) from the Product Version but was kept in the Developer Version number. The Minor number was kept but no Minor releases were ever shipped, 5.1 (Dragonfly) was planned but never released.
1.2.0, 1.3.0, 1.4.0 While 1.2 was a remarkable release from the perspective of the amount of change, it had the version 1.2 vs. 2.0, and it was clear that there would never be another "Major Release". Consequently, Minor releases (1.2, 1.3 etc.) were referred to as Major releases, and Micro releases (1.3.1, 1.4.2) as Minor releases. Retrospectively, 1.1 is also referred to as a Major Release, though 1.1.1, 1.1.2 etc. continue to be Micro Releases.
1.1 1.1 updates ended in _002, _003 etc. for Windows and Solaris Reference releases and _02, _03 for Solaris Production releases.
1.0 The numbering started off with the model Major.Minor.Micro.

Code Names

Code names were used for early Java releases; the Major releases were named after birds or mammals, while the minor releases were named after insects (given they were bug-fix releases). Hopper was short for grasshopper and ladybird is the British name used for a ladybug. The 1.2 release was called "Playground" by some, but that was never an official or broadly-used code name. The practice of naming releases ended with JDK 7.

Code names used for Java releases pre-JDK 8
Version Code Name
7 Dolphin
6 Mustang
5.0 Tiger
1.4.2 Mantis
1.4.1 Hopper
1.4.0 Merlin
1.3.1 Ladybird
1.3.0_01 Firefly
1.3.0 Kestrel
1.2.2 Cricket
1.2.1 Gnat
1.1.8 Chelsea
1.1.7 Brutus
1.1.6 Abigail
1.1.5 Pumpkin
1.1.4 Sparkler

Java SE Platform

The Java Community Process (JCP) standardizes and ratifies the Java SE Platform via a Java Specification Request (JSR). Every JSR consists of three components: a Specification, a Reference Implementation (RI), and a Technology Compatibility Toolkit (TCK). The purpose of the RI is to prove that the Specification may be implemented, and the TCK is a test suite used to verify that the implementation is compliant with the Specification.

For the JSR which standardizes the Java SE Platform, the Platform JSR Specification consists of the Java SE API Specification, the Java Language Specification (JLS), the Java Virtual Machine Specification (JVMS), and further narrative specifications such as the JNI Specification, the JAR File Specification, and the Serialization Specification. Each Feature (previously "Major") Release of the JDK is the RI for the corresponding Platform JSR and finally, the Java Compatibility Kit (JCK) is the TCK for the Java SE Platform.

In addition to the Specification of the Java SE Platform, the JDK is further specified by a number of other documents including the Tool Specifications (more commonly referred to as the "man" pages), the JDK API Specifications (see the 'JDK' tab in the javadoc), and the Standard Doclet Specification.

The typical update release does not make any changes to the Specification of the Java SE Platform. However, in exceptional circumstances when a specification change is needed, a Maintenance Release (MR) of the Platform JSR is required - the following table lists every MR of the Java SE Platform JSRs:

A list of every Maintenance Release of Java Specification Requests
Family Date JSR RI Specification (1) Implemented by (2) Reason
Java SE 17
2024-07-02 JSR 392 MR 1 17.0.0.1 17.1 17.0.12 Relax the java.awt.Robot specification,
backport JEP 452 Key Encapsulation Mechanism API,
and add system property for Java SE specification maintenance version
Java SE 11
2024-07-02 JSR 384 MR 3 11.0.0.2 11.3 11.0.24 Relax the java.awt.Robot Spec
2023-05-09 JSR 384 MR 2 11.0.0.1 11.2 11.0.20 New code points for GB 18030-2022
2019-03-26 JSR 384 MR 1 11 11.1 11.0.3 New Japanese Era, Currency Changes,
and Standard Cryptographic Algorithm Names
2018-09-19 JSR 384 11 11
Java SE 8
2024-07-02 JSR 337 MR 6 8u44 8.6 8u411 Relax the java.awt.Robot specification
2023-05-09 JSR 337 MR 5 8u43 8.5 8u381 New code points for GB 18030-2022
2022-07-26 JSR 337 MR 4 8u42 8.4 8u351 java.lang.ref.Reference object updates
2020-02-05 JSR 337 MR 3 8u41 8.3 8u251 ALPN, RSASSA-PSS (for TLS 1.3)
2019-03-26 JSR 337 MR 2 8u40 8.2 8u211 New Japanese Era, Currency Changes,
and Standard Cryptographic Algorithm Names
2015-03-03 JSR 337 MR 1 8u40 8.1 8u40 Verifier update in JVMS
2014-03-04 JSR 337 8 8
Java SE 7
2015-03-12 JSR 336 MR 1 7u75 7u75 Verifier update in JVMS
2011-07-20 JSR 336 7 7
Java SE 6
2015-03-18 JSR 270 MR 1 6u91 6u91 Verifier update in JVMS
2006-12-11 JSR 270 6 6

(1) Programmatic access to the maintenance specification version was originally added to JDK 19 and backported to JDK 8 with JSR 337 MR 4, JDK 11 with JSR 384 MR 2 and JDK 17 with JSR 392 MR 1.

(2) The JCP requires that each Maintenance Release includes an RI, although that RI should not be used in production. Instead, the update release of the JDK which corresponds to ('implements') the MR should be used in production. For example, JDK 8u381 should be used instead of JDK 8u43

The JCP was created in December 1998. Prior to Java SE 8, all significant new features were developed by independent JSRs under the JCP then incorporated by reference in the Platform JSR. Starting with Java SE 8, this practice was discontinued, and the JDK Enhancement Proposal (JEP) Process was introduced. When a JEP of "Scope = 'SE'" is targeted to a specific release, it is linked in the Platform JSR.

Additional Information

  • In 2010 Oracle acquired Sun Microsystems Inc., releases after mid 2010 were re-branded from Sun to Oracle.
  • Prior to Java 11 in 2018, a Java release included both a JRE and a JDK, whereas in Java 11 and later, a Java release consists solely of the JDK.
  • Updates to the supported Crypto algorithms are tracked in the JDK Crypto Roadmap.
  • The mapping of TZ data to release is available in the Timezone Data Mapping page.

Last Updated: 2026-08-18