Content deleted Content added
Release on the 18th, now final. |
→Java SE 25 (LTS): add JEPs and add to infobox, add release date |
||
(24 intermediate revisions by 16 users not shown) | |||
Line 2:
{{About|the Java programming language||History of Java (disambiguation){{!}}History of Java}}
The [[Java (programming language)|Java language]] has undergone several changes since [[Java Development Kit|JDK]] 1.0 as well as numerous additions of [[class (computer science)|classes]] and packages to the standard [[library (computer science)|library]]. Since J2SE 1.4, the evolution of the Java language has been governed by the [[Java Community Process]] (JCP), which uses ''Java Specification Requests'' (JSRs) to propose and specify additions and changes to the [[Java (software platform)|Java platform]]. The language is specified by the ''Java Language Specification'' (JLS); changes to the JLS are managed under [http://www.jcp.org/en/jsr/detail?id=901 JSR 901]. In September 2017, Mark Reinhold, chief
In addition to the language changes, other changes have been made to the [[Java Class Library]] over the years, which has grown from a few hundred classes in JDK 1.0 to over three thousand in J2SE 5. Entire new [[API]]s, such as [[Swing (Java)|Swing]] and [[Java2D]], have been introduced, and many of the original JDK 1.0 classes and methods have been [[deprecation|deprecated]], and very few APIs have been removed (at least one, for threading, in Java 22<ref name="removed_API_in Java_22"
Regarding Oracle's [[Java Platform, Standard Edition|Java SE]] support roadmap,<ref name=oracle
|last=Smith| first=Donald|date=}}</ref>
In the case of [[OpenJDK]], both commercial long-term support and [[free software]] updates are available from multiple organizations in the broader [[OpenJDK#OpenJDK builds|community]].<ref name="OracleJava11LTS">{{cite web| title=What does LTS mean for OpenJDK? | last=Reinhold | first=Mark | url=https://mail.openjdk.java.net/pipermail/jdk-dev/2018-August/001824.html | date=2018-08-17 | access-date=2018-08-28}}</ref>
Java 23 was released on
== Release table ==
Line 19:
{{Infobox Java version
| version name = JDK 1.0
| released = {{Start date and age|1996|1|23|df=y|br=yes|paren=yes}}
}}
The first version was released on January 23, 1996.<ref name="pr10">{{cite press release|url=http://www.sun.com/smi/Press/sunflash/1996-01/sunflash.960123.10561.xml |title=JavaSoft ships Java 1.0 |access-date=2008-02-05 |url-status=dead |archive-url=https://web.archive.org/web/20070310235103/http://www.sun.com/smi/Press/sunflash/1996-01/sunflash.960123.10561.xml |archive-date=March 10, 2007}}</ref><ref name=JavaHistory>{{cite book |last1=Ortiz |first1=C. Enrique |last2=Giguère |first2=Éric |title=Mobile Information Device Profile for Java 2 Micro Edition: Developer's Guide |year=2001 |publisher=[[John Wiley & Sons]] |isbn=978-0-471-03465-0 |url=https://archive.org/details/mobileinformatio0000orti |access-date=May 30, 2012 |url-access=registration }}</ref> The first stable version, JDK 1.0.2, is called Java 1.<ref name=JavaHistory
{{-}}
It included:
* core language features (basic java types in java.lang, and utility classes in java.util)
* support for graphics ([[Abstract_Window_Toolkit|AWT]] framework)
* support for creating a [[Java applet]]
* libraries for [[Input/output|I/O]] and [[Computer_network|networking]]
== JDK 1.1 ==
{{Infobox Java version
| version name = JDK 1.1
| released = {{Start date and age|1997|2|19|df=y|br=yes|paren=yes}}
}}
Major additions in the release on February 19, 1997 included:<ref name="pr11">[https://web.archive.org/web/20080210044125/http://www.sun.com/smi/Press/sunflash/1997-02/sunflash.970219.0001.xml Version 1.1 press release], Sun.</ref>
Line 33 ⟶ 40:
* [[inner class]]es added to the language
* [[JavaBeans]]
* [[Java Database Connectivity]] (JDBC) and support for [[sql]]
* [[Java remote method invocation]] (RMI) and [[serialization]]
* [[Reflective programming|reflection]] which supported Introspection only, no modification at runtime was possible. (The ability to modify objects reflectively was added in J2SE 1.2, by introducing the {{Javadoc|module=java.base|package=java.lang.reflect|class=AccessibleObject|text=AccessibleObject}} class and its subclasses such as the {{Javadoc|module=java.base|package=java.lang.reflect|class=Field|text=Field}} class.)
* [[Just-in-time compilation]] (JIT) on [[Microsoft Windows]] platforms, produced for JavaSoft by Symantec
* [[Internationalization and localization|Internationalization]] and [[Unicode]] support originating from [[Taligent]]<ref name="taligentau">{{cite news |
{{-}}
Line 44 ⟶ 51:
| version name = J2SE 1.2
| codename = Playground
| released = {{Start date and age|1998|12|8|df=y|br=yes|paren=yes}}
}}
The release on December 8, 1998 and subsequent releases through J2SE 5.0 were rebranded retrospectively '''Java 2''' and the version name "J2SE" ([[Java Platform, Standard Edition|Java 2 Platform, Standard Edition]]) replaced JDK to distinguish the base platform from J2EE ([[Java Platform, Enterprise Edition|Java 2 Platform, Enterprise Edition]]) and J2ME ([[Java Platform, Micro Edition|Java 2 Platform, Micro Edition]]). This was a very significant release of Java as it tripled the size of the Java platform to 1520 classes in 59 packages. Major additions included:<ref name="pr12">[https://web.archive.org/web/20070816170028/http://www.sun.com/smi/Press/sunflash/1998-12/sunflash.981208.9.xml Version 1.2 press release], Sun.</ref>
Line 58 ⟶ 65:
{{Infobox Java version
| version name = J2SE 1.3
| released = {{Start date and age|2000|5|8|df=y|br=yes|paren=yes}}
| codename = Kestrel
}}
Line 75 ⟶ 82:
{{Infobox Java version
| version name = J2SE 1.4
| released = {{Start date and age|2002|2|6|df=y|br=yes|paren=yes}}
| public_support_ended = {{End date|2008|10}}
| paid_support_ended = {{End date|2013|2}}
Line 97 ⟶ 104:
{{Anchor|Java 5}}
== Java SE 5 ==
{{Infobox Java version
| version name = Java SE 5
| codename = Tiger
| released = {{Start date and age|2004|9|30|df=y|br=yes|paren=yes}}
| public_support_ended = {{End date|2009|11}}
| paid_support_ended = {{End date|2015|4}}
Line 107 ⟶ 115:
The release on September 30, 2004 was originally numbered 1.5, which is still used as the internal version number. The number was changed to "better reflect the level of maturity, stability, scalability and security of the J2SE".<ref name="version 5">{{cite web|title=Version 1.5.0 or 5.0?|url=https://docs.oracle.com/javase/1.5.0/docs/relnotes/version-5.0.html|publisher=Oracle}}</ref> This version was developed under [https://www.jcp.org/en/jsr/detail?id=176 JSR 176].
Java SE 5 entered its end-of-public-updates period on April 8, 2008; updates are no longer available to the public as of November 3, 2009. Updates were available to paid Oracle customers until May 2015.<ref name=oracle
Tiger added a number of significant new language features:<ref name="pr15">[https://web.archive.org/web/20080207083457/http://www.sun.com/smi/Press/sunflash/2004-09/sunflash.20040930.1.xml Version 1.5 press release].</ref><ref name="ch15">[https://java.sun.com/j2se/1.5/docs/relnotes/features.html Version 1.5 full list of changes].</ref>
Line 125 ⟶ 133:
* Scanner class for parsing data from various input streams and buffers
Java 5 is the last release of Java to officially support Microsoft [[Windows 98]] and [[Windows ME]],<ref>{{cite web|url=https://www.java.com/en/download/windows98me_manual.jsp |title=Java 5.0 is no longer available on Java.com |publisher=Java.com |date=2009-11-03 |access-date=2016-09-30}}</ref> while [[Windows Vista]] was the newest version of Windows that Java SE 5 was supported on prior to Java 5 going end-of-life in October
Java 5 Update 5 (1.5.0_05) is the last release of Java to work on [[Windows 95]] (with [[Internet Explorer 5]].5 installed) and [[Windows NT 4.0]].<ref>{{cite web|url=http://toastytech.com/guis/miscb2.html |title=Misc Windows 2 – Nathan's Toasty Technology page |first=Nathan |last=Lineback |access-date=2016-09-30}}</ref>
Java 5 was first available on Apple Mac OS X 10.4 (Tiger)<ref>{{cite web |
Public support and security updates for Java 1.5 ended in November 2009. Paid security updates for Oracle customers ended in April 2015.
Line 135 ⟶ 143:
=== Versioning change ===
This version introduced a new versioning system for the Java language, although the old versioning system continued to be used for developer libraries:
{{
This correspondence continued through later releases (Java 6 = JDK 1.6, Java 7 = JDK 1.7, and so on).
Line 145 ⟶ 153:
| version name = Java SE 6
| codename = Mustang
| released = {{Start date and age|2006|11|11|df=y|br=yes|paren=yes}}
| public_support_ended = {{End date|2013|2}}
}}
Line 177 ⟶ 185:
=== Java 6 updates ===
After Java 6 release, Sun, and later Oracle, released several updates which, while not changing any public API, enhanced end-user usability or fixed bugs.<ref>{{Cite web|url=https://www.oracle.com/technetwork/java/javase/releasenotes-136954.html|title=Java SE 6 Update Release Notes|website=
{| class="wikitable mw-collapsible mw-collapsed"
Line 207 ⟶ 215:
| Java SE 6 Update 10{{citation needed|date=June 2023}}|| 2008-10-15
|| HotSpot VM 11. Major changes for this update include:
* Java Deployment Toolkit, a set of [[JavaScript]] functions to ease the deployment of [[Java applet|applets]] and [[Java Web Start]] applications.<ref name="JSE6upd10">{{Cite web |title=Oracle Java Technologies | Oracle |url=https://www.oracle.com/java/technologies/ |website=
* Java Kernel, a small installer including only the most commonly used JRE classes. Other packages are downloaded when needed.
* Enhanced updater.
* Enhanced versioning and pack200 support: server-side support is no longer required.<ref name="JSE6upd10"
* Java Quick Starter, to improve cold start-up time.
* Improved performance of [[Java2D]] graphics primitives on Windows, using [[Direct3D]] and hardware acceleration.
* A new [[Swing (Java)|Swing]] [[look and feel]] called Nimbus and based on [[Synth Look and Feel|synth]].<ref>{{Cite web|url=https://java.net/projects/nimbus|archive-url=https://archive.today/20110820062447/http://java.net/projects/nimbus|archive-date=20 August 2011|url-status=dead|title=Nimbus — Java.net|access-date=1 February 2020}}</ref>
* Next-Generation Java Plug-In: applets now run in a separate process and support many features of Web Start applications.<ref name="JSE6upd10"
|-
| Java SE 6 Update 11<ref>{{cite web| url=http://www.findmysoft.com/news/Sun-Java-6-Update-11-Available-Now-Waiting-on-JavaFX/ | title=Sun Java 6 Update 11 Available Now, Waiting on JavaFX | publisher=FindMySoft.com | access-date=2009-11-13}}</ref> {{citation needed|date=June 2023}}|| 2008-12-03 || 13 security fixes{{citation needed|date=June 2023}}
Line 225 ⟶ 233:
|-
| Java SE 6 Update 14{{citation needed|date=June 2023}}|| 2009-05-28
|| HotSpot VM 14. This release includes extensive performance updates to the JIT compiler, compressed pointers for 64-bit machines, as well as ''experimental'' support for the [[Garbage-first collector|Garbage-First (G1)]]
The <code>-XX:+DoEscapeAnalysis</code> option directs the HotSpot [[JIT compiler]] to use [[escape analysis]] to determine whether local objects can be allocated on the [[Stack-based memory allocation|stack]] instead of the [[Dynamic memory allocation|heap]].{{citation needed|date=June 2023}}
Line 254 ⟶ 262:
|| No security fixes; Hotspot VM 20; support for [[Internet Explorer 9]], [[Firefox 4]] and Chrome 10; improved BigDecimal; includes "tiered" compilation in the Server VM that enables it to start quickly as does the Client VM, while achieving better peak performance (this feature is enabled by specifying <code>-server</code> and <code>-XX:+TieredCompilation</code> command options)
|-
| Java SE 6 Update 26{{citation needed|date=June 2023}} || 2011-06-07 || 17 new security fixes;<ref>{{Cite web|url=https://www.oracle.com/security-alerts/javacpujune2011.html|title=Oracle Java SE Critical Patch Update Advisory – June 2011|website=
|-
| Java SE 6 Update 27{{citation needed|date=June 2023}} || 2011-08-16 || No security fixes; certification for Firefox 5
|-
| Java SE 6 Update 29{{citation needed|date=June 2023}} || 2011-10-18 || 20 security fixes, various bug fixes<ref>{{Cite web|url=https://www.oracle.com/security-alerts/javacpuoct2011.html|title=Oracle Java SE Critical Patch Update Advisory – October 2011|website=
|-
| Java SE 6 Update 30{{citation needed|date=June 2023}} || 2011-12-12 || No security fixes; fix for SSL regression in Update 29; support for [[Red Hat Enterprise Linux]] 6
Line 270 ⟶ 278:
| Java SE 6 Update 34{{citation needed|date=June 2023}} || 2012-08-14 || No security fixes, various bug fixes
|-
| Java SE 6 Update 35{{citation needed|date=June 2023}} || 2012-08-30 || Contains a security-in-depth fix<ref name="SecAlert"
|-
| Java SE 6 Update 37{{citation needed|date=June 2023}} || 2012-10-16 || 30 security fixes
Line 282 ⟶ 290:
| Java SE 6 Update 43{{citation needed|date=June 2023}} || 2013-03-04 || 2 security fixes
|-
| Java SE 6 Update 45{{citation needed|date=June 2023}} || 2013-04-16 || 42 security fixes;<ref>{{Cite web|url=https://www.oracle.com/security-alerts/javacpuapr2013.html|title=Oracle Java SE Critical Patch Update Advisory – April 2013|website=
|-
| Java SE 6 Update 51 || 2013-06-18 || Not available publicly, only available through the Java SE Support program and in Apple Update for OS X Snow Leopard, Lion & Mountain Lion; up to 40 security fixes<ref name="oracle.com">{{Cite web|url=https://www.oracle.com/security-alerts/javacpujun2013.html|title=Oracle Java Critical Patch Update – June 2013|website=
|-
| Java SE 6 Update 65 || 2013-10-15 || Not available publicly, only available through the Java SE Support program and in Apple Update for OS X Snow Leopard, Lion & Mountain Lion; at least 11 critical security fixes<ref name="auto11">{{Cite web|url=https://www.oracle.com/security-alerts/cpuoct2013.html|title=Oracle Critical Patch Update – October 2013|website=
|-
| Java SE 6 Update 71 || 2014-01-14 || Not available for public download; 33 fixes{{citation needed|date=June 2023}}
|-
| Java SE 6 Update 75 || 2014-04-15 || Not available publicly, only available through the Java SE Support program and in Solaris 10's Recommended Patchset Cluster no. #54; 25 security fixes<ref name="auto13">{{Cite web|url=https://www.oracle.com/security-alerts/cpuapr2014.html|title=Oracle Critical Patch Update – April 2014|website=
|-
| Java SE 6 Update 81 || 2014-07-15 || Not available publicly, only available through the Java SE Support program and in Solaris 10's Recommended Patchset Cluster; 11 security fixes<ref>{{Cite web|url=https://www.oracle.com/security-alerts/cpujul2014.html|title=Oracle Critical Patch Update – July 2014|website=
|-
| Java SE 6 Update 85 || 2014-10-16 || Not available publicly, only available through the Java SE Support program and in Solaris 10's Recommended Patchset Cluster; 18 security fixes<ref>{{Cite web|url=https://www.oracle.com/security-alerts/cpuoct2014.html|title=Oracle Critical Patch Update – October 2014|website=
|-
| Java SE 6 Update 91 || 2015-01-21 || Linux x64 and Windows i586 versions are available as the Java SE 6 Reference Implementation.<ref>{{cite web|title=Java SE 6 Reference Implementation|url=https://www.oracle.com/technetwork/java/javase/downloads/javase6ri-2395277.html|publisher=[[Oracle Corporation]]|access-date=2016-10-24}}</ref> Other versions are only available through the Java SE Support program and in Solaris 10's Recommended Patchset Cluster; 15 security fixes<ref>{{Cite web|url=https://www.oracle.com/security-alerts/cpujan2015.html|title=Oracle Critical Patch Update Advisory – January 2015|website=
|-
| Java SE 6 Update 95 || 2015-04-14 || Not available publicly, only available through the Java SE Support program and in Solaris 10's Recommended Patchset Cluster; 14 security fixes<ref>{{Cite web|url=https://www.oracle.com/security-alerts/cpuapr2015.html|title=Oracle Critical Patch Update – April 2015|website=
|-
| Java SE 6 Update 101 || 2015-07-15 || Not available publicly, only available through the Java SE Support program and in Solaris 10's Recommended Patchset Cluster; 18 security fixes<ref>{{cite web|title = Oracle Critical Patch Update Advisory – July 2015|url = https://www.oracle.com/technetwork/topics/security/cpujul2015-2367936.html|access-date = 2015-07-15}}</ref> Certification for IE 10 and 11 was introduced in 1.6.0_101
Line 337 ⟶ 345:
| version name = Java SE 7
| codename = Dolphin<ref name="JDK7">[http://jdk7.java.net/ JDK7] {{Webarchive|url=https://web.archive.org/web/20161215071733/https://jdk7.java.net/ |date=2016-12-15 }}, Sun.</ref>
| released = {{Start date and age|2011|7|28|df=y|br=yes|paren=yes}}
| public_support_ended = {{End date|2015|4}}
| paid_support_ended = {{End date|2022|6}}
}}
Java 7 was a major update that launched on July 7, 2011<ref>{{cite web|title=Introducing Java 7 Webcast: Moving Java Forward|url=https://www.oracle.com/webapps/events/ns/EventsDetail.jsp?p_eventId=134208&src=7299693&src=7299693&Act=18|publisher=[[Oracle Corporation]]|access-date=May 30, 2012|date=July 7, 2011}}</ref> and was made available for developers on July 28, 2011.<ref name="auto10">{{Cite web|url=https://openjdk.java.net/projects/jdk7/|title=JDK 7|website=openjdk.java.net}}</ref> The development period was organized into thirteen milestones; on June 6, 2011, the last of the thirteen milestones was finished.<ref name="auto10"
Additions in Java 7 include:<ref>{{cite web|url=https://puredanger.github.io/tech.puredanger.com/java7|title=Java 7|last=Miller|first=Alex|access-date=2024-02-05}}</ref>
Line 364 ⟶ 372:
* Java deployment rule sets<ref>{{cite web |url=https://blogs.oracle.com/java-platform-group/entry/introducing_deployment_rule_sets |title=Introducing Deployment Rule Sets |publisher=Oracle |date=2013-08-21 |access-date=2019-01-22}}</ref>
Lambda (Java's implementation of [[Lambda (programming)|lambda functions]]), Jigsaw (Java's implementation of [[Modular programming|modules]]), and part of Coin were dropped from Java 7, and released as part of Java 8 (except for [[Java Module System|Jigsaw]], which was released in Java 9).<ref name="JavaOne2011Keynote">{{cite web|url=https://blogs.oracle.com/javaone/resource/java_keynote/slide_16_full_size.gif|title=JavaOne 2011 Keynote|publisher=Oracle|url-status=dead|archive-url=https://web.archive.org/web/20111026122903/http://blogs.oracle.com/javaone/resource/java_keynote/slide_16_full_size.gif|archive-date = 2011-10-26}}</ref><ref name="Jigsaw"
Java 7 was the default version to download on java.com from April 2012 until Java 8 was released.<ref name="Java7AutoUpdate">{{cite web|url=https://www.oracle.com/technetwork/java/javase/documentation/autoupdate-1667051.html|title=Java 7 Auto-Update and Java 6|publisher=Oracle}}</ref>
Line 378 ⟶ 386:
! Highlights
|-
| Java SE 7<ref name="JSE7">{{Cite web|url=https://www.oracle.com/technetwork/java/javase/jdk7-relnotes-429209.html|title=JDK 7 Release Notes|website=
|-
| Java SE 7 Update 1{{citation needed|date=June 2023}}|| 2011-10-18 || 20 security fixes, other bug fixes
Line 384 ⟶ 392:
| Java SE 7 Update 2{{citation needed|date=June 2023}}|| 2011-12-12 || No security fixes; HotSpot VM 22; reliability and performance improvements; support for [[Solaris 11]] and Firefox 5 and later; [[JavaFX]] included with Java SE JDK, improvements for web-deployed applications
|-
| Java SE 7 Update 3{{citation needed|date=June 2023}}|| style="white-space:nowrap" |2012-02-14 || 14 security fixes<ref>{{Cite web|url=https://www.oracle.com/security-alerts/javacpufeb2012.html|title=Oracle Java SE Critical Patch Update Advisory – February 2012|website=
|-
| Java SE 7 Update 4{{citation needed|date=June 2023}}|| 2012-04-26 || No security updates; HotSpot VM 23; JDK Support for Mac OS X; New Supported [[Garbage collection (computer science)|Garbage Collector]]: [[Garbage-first collector|Garbage-First (G1)]]
|-
| Java SE 7 Update 5{{citation needed|date=June 2023}}|| 2012-06-12 || 14 security fixes<ref>{{Cite web|url=https://www.oracle.com/security-alerts/javacpujun2012.html|title=Oracle Java SE Critical Patch Update Advisory – June 2012|website=
|-
| Java SE 7 Update 6{{citation needed|date=June 2023}}|| 2012-08-14 || [[JavaFX]] and [[Java Access Bridge]] included in Java SE JDK and JRE installation, JavaFX support for touch-enabled monitors and touch pads, JavaFX support for [[Linux]], JDK and JRE Support for Mac OS X, JDK for Linux on ARM<ref>{{Cite web|url=https://blogs.oracle.com/java/entry/oracle_releases_java_se_7|archive-url=https://web.archive.org/web/20121027075253/https://blogs.oracle.com/java/entry/oracle_releases_java_se_7|url-status=dead|title=Java SE 7 Update 6 Released|archive-date=October 27, 2012}}</ref>
Line 394 ⟶ 402:
| Java SE 7 Update 7{{citation needed|date=June 2023}}|| 2012-08-30 || 4 security fixes<ref name="SecAlert">{{cite web|title=Oracle Security Alert for CVE-2012-4681|url=https://www.oracle.com/technetwork/topics/security/alert-cve-2012-4681-1835715.html|publisher=[[Oracle Corporation]]}}</ref>
|-
| Java SE 7 Update 9{{citation needed|date=June 2023}}|| 2012-10-16 || 30 security vulnerabilities fixes<ref>{{Cite web|url=https://www.oracle.com/security-alerts/javacpuoct2012.html|title=Oracle Java SE Critical Patch Update Advisory – October 2012|website=
|-
| Java SE 7 Update 10{{citation needed|date=June 2023}}|| 2012-12-11 || New security features, such as the ability to disable any Java application from running in the browser and new dialogs to warn you when the JRE is insecure, and bug fixes
Line 400 ⟶ 408:
| Java SE 7 Update 11{{citation needed|date=June 2023}}|| 2013-01-13 || [[Olson database|Olson Data]] 2012i; bugfix for problems with registration of plugin on systems with Stand-alone version of JavaFX Installed, security fixes for {{CVE|2013-0422}};<ref>{{cite web|title=Oracle Security Alert for CVE-2013-0422|url=https://www.oracle.com/technetwork/topics/security/alert-cve-2013-0422-1896849.html|publisher=[[Oracle Corporation]]}}</ref> the default security level for Java applets and web start applications has been increased from "Medium" to "High"
|-
| Java SE 7 Update 13<ref>{{Cite web|url=https://www.oracle.com/security-alerts/javacpufeb2013.html|title=Oracle Java SE Critical Patch Update Advisory – February 2013|website=
|-
| Java SE 7 Update 15{{citation needed|date=June 2023}}
Line 412 ⟶ 420:
|-
| Java SE 7 Update 25{{citation needed|date=June 2023}}
|| 2013-06-18 || Multiple changes including 40 security fixes<ref name="oracle.com"
|-
| Java SE 7 Update 40{{citation needed|date=June 2023}}
|| 2013-09-10 || 621 bug fixes,<ref>{{Cite web|url=https://www.oracle.com/technetwork/java/javase/2col/7u40-bugfixes-2007733.html|title=Java SE Development Kit 7 Update 40 Bug Fixes|website=
|-
| Java SE 7 Update 45{{citation needed|date=June 2023}}
|| 2013-10-15 || 51 security fixes;<ref name="auto11"
|-
| Java SE 7 Update 51{{citation needed|date=June 2023}}
|| 2014-01-14 || 36 security fixes; block JAVA applets without manifest (like Remote
|-
| Java SE 7 Update 55{{citation needed|date=June 2023}}
|| 2014-04-15 || 37 security fixes,<ref name="auto13"
|-
| Java SE 7 Update 60{{citation needed|date=June 2023}}
|| 2014-05-28 || Java Mission Control 5.3,<ref>{{Cite web|url=https://www.oracle.com/technetwork/java/javase/jmc53-release-notes-2157171.html|title=Java Mission Control 5.3 Release Notes|website=
|-
| Java SE 7 Update 65{{citation needed|date=June 2023}}
Line 439 ⟶ 447:
|-
| Java SE 7 Update 72{{citation needed|date=June 2023}}
|| 2014-10-14 || Same release date with Update 71 as a corresponding Patch Set Update (PSU) for Java SE 7,<ref name="CPU&PSU">{{Cite web|url=https://www.oracle.com/technetwork/java/javase/downloads/cpu-psu-explained-2331472.html|title=Java CPU and PSU Releases Explained|website=
|-
| Java SE 7 Update 75{{citation needed|date=June 2023}}
Line 445 ⟶ 453:
|-
| Java SE 7 Update 76{{citation needed|date=June 2023}}
|| 2015-01-20 || Same release date with Update 75 as a corresponding Patch Set Update (PSU) for Java SE 7,<ref name="CPU&PSU"
|-
| Java SE 7 Update 79{{citation needed|date=June 2023}}
Line 454 ⟶ 462:
|-
| Java SE 7 Update 85
|| 2015-07-15 || Not available publicly, only available through the Java SE Support program and in Solaris 10's Recommended Patchset Cluster; 25 security fixes<ref name="ReferenceA">{{Cite web|url=https://www.oracle.com/security-alerts/cpujul2015.html|title=Oracle Critical Patch Update Advisory – July 2015|website=
|-
| Java SE 7 Update 91
|| 2015-10-20 || Not available publicly, only available through the Java SE Support program and in Solaris 10's Recommended Patchset Cluster; 20 security fixes<ref name="ReferenceB">{{Cite web|url=https://www.oracle.com/security-alerts/cpuoct2015.html|title=Oracle Critical Patch Update Advisory – October 2015|website=
|-
| Java SE 7 Update 95
Line 465 ⟶ 473:
| Java SE 7 Update 97
| 2016-02-05
| Not available publicly, only available through the Java SE Support program and in Solaris 10's Recommended Patchset Cluster; 1 security fix<ref name="auto"
|-
| Java SE 7 Update 99
Line 477 ⟶ 485:
| Java SE 7 Update 111
| 2016-07-19
| Not available publicly, only available through the Java SE Support program and in Solaris 10's Recommended Patchset Cluster; 36 security fixes<ref name="auto3"
|-
| Java SE 7 Update 121
| 2016-10-18
| Not available publicly, only available through the Java SE Support program and in Solaris 10's Recommended Patchset Cluster; 32 security fixes<ref name="auto1"
|-
| Java SE 7 Update 131
| 2017-01-17
| Not available publicly, only available through the Java SE Support program and in Solaris 10's Recommended Patchset Cluster; 34 security fixes<ref name="auto2"
|-
| Java SE 7 Update 141
Line 493 ⟶ 501:
| Java SE 7 Update 151
| 2017-07-18
| Not available publicly, only available through the Java SE Support program and in Solaris 10's Recommended Patchset Cluster; 4 security fixes<ref name=":0"
|-
| Java SE 7 Update 161
| 2017-10-20
| Not available publicly, only available through the Java SE Support program and in Solaris 10's Recommended Patchset Cluster; 4 security fixes<ref name="auto5"
|-
| Java SE 7 Update 171
| 2018-01-16
| Not available publicly, only available through the Java SE Support program and in Solaris 10's Recommended Patchset Cluster; 51 security fixes<ref name="auto7"
|-
| Java SE 7 Update 181
| 2018-04-17
| Not available publicly, only available through the Java SE Support program and in Solaris 10's Recommended Patchset Cluster; 12 security fixes<ref name="auto6"
|-
| Java SE 7 Update 191
| 2018-07-17
| Not available publicly, only available through the Java SE Support program and in Solaris 10's Recommended Patchset Cluster; 9 security fixes<ref name="auto4"
|-
| Java SE 7 Update 201
| 2018-10-18
| Not available publicly, only available through the Java SE Support program and in Solaris 10's Recommended Patchset Cluster; 13 security fixes<ref name="auto8"
|-
| Java SE 7 Update 211
Line 570 ⟶ 578:
{{Anchor|Java 8}}
== Java SE 8 (LTS) ==
{{Infobox Java version
|version name = Java SE 8
|codename = Spider
|lts = yes
|released = {{Start date and age|2014|3|18|df=y|br=yes|paren=yes}}
|jeps = 8
}}
Java 8 was released on
Work on features was organized in terms of [[JDK Enhancement Proposal]]s (JEPs).<ref>{{cite web |url=https://jcp.org/en/jsr/detail?id=337 |title=JSR 337|access-date=2014-01-30}}</ref>
*JSR 335, JEP 126: Language-level support for [[lambda (programming)|lambda expressions]] (officially, lambda expressions; unofficially, [[closure (computer programming)|closures]]) under Project Lambda<ref>{{cite web|url=https://openjdk.java.net/projects/jdk7/features/#f700|title=Java 7 Features|publisher=Sun Microsystems|date=2010-02-09|access-date=2010-04-16}}</ref> and default methods (virtual [[extension method]]s)<ref name="goetz_interface_evolution">{{cite web|url=https://wiki.jvmlangsummit.com/images/7/71/2011_Goetz_Extension.pdf|title=Interface evolution via virtual extension methods|publisher=Brian Goetz|date= 2011-07-20|access-date=2014-03-27}}</ref><ref>{{cite web|url= https://www.jcp.org/en/jsr/proposalDetails?id=335|title= Lambda Expressions for the Java Programming Language|publisher=Brian Goetz|date= 2012-10-23|access-date = 2014-03-27}}</ref><ref>{{cite web|url= https://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html|title=The Java Tutorials: Default Methods|publisher=Oracle|access-date= 2014-03-27|archive-url=https://web.archive.org/web/20170523042436/http://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html|archive-date=2017-05-23|url-status=dead}}</ref> which can be used to add methods to interfaces without breaking existing implementations. There was an ongoing debate in the Java community on whether to add support for lambda expressions.<ref>{{cite web|url=http://gafter.blogspot.com/2006/08/closures-for-java.html|title=Closures for Java|last=Gafter|first=Neal|date=2006-08-18|access-date=2008-03-09}}</ref><ref>{{cite web|url=https://blogs.oracle.com/jag/entry/closures|title=Closures|last=Gosling|first=James|date=2008-01-31|access-date=2008-03-09| archive-url=https://web.archive.org/web/20110722180952/http://blogs.oracle.com/jag/entry/closures|archive-date=2011-07-22|url-status=dead}}</ref> Sun later declared that lambda expressions would be included in Java and asked for community input to refine the feature.<ref>{{cite web|url=http://mreinhold.org/blog/closures|title=Closures for Java|last=Reinhold|first=Mark|date=2009-11-28|access-date=2009-11-24}}</ref> Supporting lambda expressions also enables [[Functional programming|functional]]-style operations on streams of elements, such as [[MapReduce]]-inspired transformations on collections. Default methods can be used by an author of an API to add new methods to an interface without breaking the old code using it. Although it was not their primary intent,<ref name="goetz_interface_evolution"
*{{Java JEP|174|Project Nashorn}}, a JavaScript runtime which can run JavaScript code embedded within applications
*{{Java JEP|104|Annotation on Java types}}
Line 616 ⟶ 625:
|Java SE 8 Update 20<ref>{{cite web |url=https://www.oracle.com/technetwork/java/javase/8u20-relnotes-2257729.html |title=Java SE Development Kit 8, Update 20 (JDK 8u20) |author=<!--Staff writer(s); no by-line.--> |website=oracle.com |access-date=2014-08-27}}</ref>
|2014-08-19
|669 bug fixes,<ref>{{Cite web|url=https://www.oracle.com/technetwork/java/javase/2col/8u20-bugfixes-2257730.html|title=Java SE Development Kit 8 Update 20 Bug Fixes|website=
|-
| Java SE 8 Update 25<ref>{{cite web |url=https://www.oracle.com/technetwork/java/javase/8u25-relnotes-2296185.html |title=Java SE Development Kit 8, Update 25 (JDK 8u25) |author=<!--Staff writer(s); no by-line.--> |website=oracle.com |access-date=2014-10-14}}</ref>
Line 628 ⟶ 637:
| Java SE 8 Update 40<ref>{{cite web |url=https://www.oracle.com/technetwork/java/javase/8u40-relnotes-2389089.html |title=Java SE Development Kit 8, Update 40 (JDK 8u40) |author=<!--Staff writer(s); no by-line.--> |website=oracle.com |access-date=2015-03-04}}</ref>
| 2015-03-03
| 645 bug fixes,<ref>{{Cite web|url=https://www.oracle.com/technetwork/java/javase/2col/8u40-bugfixes-2423829.html|title=Java SE Development Kit 8 Update 40 Bug Fixes|website=
|-
| Java SE 8 Update 45<ref>{{cite web |url=https://www.oracle.com/technetwork/java/javase/8u45-relnotes-2494160.html |title=Java SE Development Kit 8, Update 45 (JDK 8u45) |author=<!--Staff writer(s); no by-line.--> |website=oracle.com |access-date=2015-04-15}}</ref>
Line 640 ⟶ 649:
| Java SE 8 Update 60<ref>{{cite web |url=https://www.oracle.com/technetwork/java/javase/8u60-relnotes-2620227.html |title=Java SE Development Kit 8, Update 60 (JDK 8u60) |author=<!--Staff writer(s); no by-line.--> |website=oracle.com |access-date=2015-08-18}}</ref>
| 2015-08-18
| 480 bug fixes<ref>{{Cite web|url=https://www.oracle.com/technetwork/java/javase/2col/8u60-bugfixes-2620228.html|title=Java SE Development Kit 8 Update 60 Bug Fixes|website=
|-
| Java SE 8 Update 65<ref>{{cite web |url=https://www.oracle.com/technetwork/java/javase/8u65-relnotes-2687063.html |title=Java SE Development Kit 8, Update 65 (JDK 8u65) |author=<!--Staff writer(s); no by-line.--> |website=oracle.com |access-date=2015-10-20}}</ref>
Line 698 ⟶ 707:
| 3 additional features, 5 changes, and 11 bug fixes over 8u112.
|-
| Java SE 8 Update 131<ref>{{cite web|url=https://www.oracle.com/technetwork/java/javase/8u131-relnotes-3565278.html|title=Java SE Development Kit 8, Update 131 Release Notes|website=
| 2017-04-18
| 4 changes and 42 bug fixes (2 notable).
|-
| Java SE 8 Update 141<ref>{{cite web|url=https://www.oracle.com/technetwork/java/javase/8u141-relnotes-3720385.html|title=Java SE Development Kit 8, Update 141 Release Notes|website=
| 2017-07-18
| Additional feature, 3 changes and 12 bug fixes.
|-
| Java SE 8 Update 144<ref>{{cite web|url=https://www.oracle.com/technetwork/java/javase/8u144-relnotes-3838694.html|title=Java SE Development Kit 8, Update 144 Release Notes|website=
| 2017-07-26
| 32 Security fixes and bug fixes from 8u141.
|-
| Java SE 8 Update 151<ref>{{cite web|url=https://www.oracle.com/technetwork/java/javase/8u151-relnotes-3850493.html|title=Java SE Development Kit 8, Update 151 Release Notes|website=
| 2017-10-17
| 22 Security fixes, 2 notes, 1 certificate revocation, 1 new feature, 6 changes and 24 bug fixes from 8u144.
|-
| Java SE 8 Update 152<ref>{{cite web|url=https://www.oracle.com/technetwork/java/javase/8u152-relnotes-3850503.html|title=Java SE Development Kit 8, Update 152 Release Notes|website=
| 2017-10-17
| Security fixes, 1 new feature, 1 change and 238 bug fixes from 8u151 (1 notable).
|-
| Java SE 8 Update 161<ref>{{cite web|url=https://www.oracle.com/technetwork/java/javase/8u161-relnotes-4021379.html|title=Java SE Development Kit 8, Update 161 Release Notes|website=
| 2018-01-16
| 21 Security fixes, 3 new features, 9 changes and 1 bug fix from 8u152.
|-
| Java SE 8 Update 162<ref>{{cite web|url=https://www.oracle.com/technetwork/java/javase/8u162-relnotes-4021436.html|title=Java SE Development Kit 8, Update 162 Release Notes|website=
| 2018-01-16
| Security fixes, 63 bug fixes.
|-
| Java SE 8 Update 171<ref>{{cite web|url=https://www.oracle.com/technetwork/java/javase/8u171-relnotes-4308888.html|title=Java SE Development Kit 8, Update 171 Release Notes|website=
| 2018-04-17
| Security fixes, bug fixes.
|-
| Java SE 8 Update 172<ref>{{cite web|url=https://www.oracle.com/technetwork/java/javase/8u172-relnotes-4308893.html|title=Java SE Development Kit 8, Update 172 Release Notes|website=
| 2018-04-17
| Security fixes, bug fixes.
|-
| Java SE 8 Update 181<ref>{{cite web|url=https://www.oracle.com/technetwork/java/javase/8u181-relnotes-4479407.html|title=Java SE Development Kit 8, Update 181 Release Notes|website=
| 2018-07-17
| Security fixes, bug fixes.
|-
| Java SE 8 Update 191<ref>{{cite web|url=https://www.oracle.com/technetwork/java/javase/8u191-relnotes-5032181.html|title=Java SE Development Kit 8, Update 191 Release Notes|website=
| 2018-10-16
| New features, changes, bug fixes, security fixes.
|-
| Java SE 8 Update 192<ref>{{cite web|url=https://www.oracle.com/technetwork/java/javase/8u192-relnotes-4479409.html|title=Java SE Development Kit 8, Update 192 Release Notes|website=
| 2018-10-16
| New features, changes, bug fixes.
|-
| Java SE 8 Update 201<ref>{{cite web|url=https://www.oracle.com/technetwork/java/javase/8u201-relnotes-5209271.html|title=Java SE Development Kit 8, Update 201 Release Notes|website=
| 2019-01-15
| New features, changes, bug fixes.
|-
| Java SE 8 Update 202<ref>{{cite web|url=https://www.oracle.com/technetwork/java/javase/8u202-relnotes-5209339.html|title=Java SE Development Kit 8, Update 202 Release Notes|website=
| 2019-01-15
| New features, changes, bug fixes.
|-
| Java SE 8 Update 211<ref>{{cite web|url=https://www.oracle.com/technetwork/java/javase/8u211-relnotes-5290139.html|title=Java SE Development Kit 8, Update 211 Release Notes|website=
| 2019-04-16
| New features, changes, bug fixes. '''License Update'''.
|-
| Java SE 8 Update 212<ref name="Reiwa">{{cite web|url=https://www.oracle.com/technetwork/java/javase/8u212-relnotes-5292913.html|title=Java SE Development Kit 8, Update 212 Release Notes|website=
| 2019-04-16
| New features (e.g. 5 currency symbols, including for [[Bitcoin]] and "New Japanese Era Name [[Reiwa]]"<ref name="Reiwa"
|-
| Java SE 8 Update 221<ref>{{cite web|url=https://www.oracle.com/technetwork/java/javase/8u221-relnotes-5480116.html|title=Java SE Development Kit 8, Update 221 Release Notes|website=
| 2019-07-16
| New features, changes, bug fixes.
|-
| Java SE 8 Update 231<ref>{{cite web|url=https://www.oracle.com/technetwork/java/javase/8u231-relnotes-5592812.html|title=Java SE Development Kit 8, Update 231 Release Notes|website=
| 2019-10-15
| New features, changes, bug fixes and 18 security fixes.
|-
| Java SE 8 Update 241<ref>{{cite web|url=https://www.oracle.com/technetwork/java/javase/8u241-relnotes-5813177.html|title=Java SE Development Kit 8, Update 241 Release Notes|website=
| 2020-01-14
| New features, changes, bug fixes.
|-
| Java SE 8 Update 251<ref>{{cite web|url=https://www.oracle.com/technetwork/java/javase/8u251-relnotes-5972664.html|title=Java SE Development Kit 8, Update 251 Release Notes|website=
| 2020-04-14
| New features, changes, bug fixes. The last version that was shown to be working on Windows XP unofficially.
|-
| Java SE 8 Update 261<ref>{{cite web|url=https://www.oracle.com/java/technologies/javase/8u261-relnotes.html|title=Java SE Development Kit 8, Update 261 Release Notes|website=
| 2020-07-14
|New features, changes, 133 bug fixes.<ref>{{Cite web|title=JDK 8u261 Bug Fixes
|url=https://www.oracle.com/java/technologies/javase/8u261-bugfixes.html|access-date=2022-04-19|website=
|-
| Java SE 8 Update 271<ref>{{cite web|url=https://www.oracle.com/java/technologies/javase/8u271-relnotes.html|title=Java SE Development Kit 8, Update 271 Release Notes|website=
| 2020-10-20
|New features, changes, 65 bug fixes.<ref>{{Cite web|title=JDK 8u271 Bug Fixes
|url=https://www.oracle.com/java/technologies/javase/8u271-bugfixes.html|access-date=2022-04-19|website=
|-
| Java SE 8 Update 281<ref>{{cite web|url=https://www.oracle.com/java/technologies/javase/8u281-relnotes.html|title=Java SE Development Kit 8, Update 281 Release Notes|website=
| 2021-01-19
|New features, changes, 33 bug fixes.<ref>{{Cite web|title=JDK 8u281 Bug Fixes
|url=https://www.oracle.com/java/technologies/javase/8u281-bugfixes.html|access-date=2022-04-19|website=
|-
| Java SE 8 Update 291<ref>{{cite web|url=https://www.oracle.com/java/technologies/javase/8u291-relnotes.html|title=Java SE Development Kit 8, Update 291 Release Notes|website=
| 2021-04-20
|New features, changes, 28 bug fixes.<ref>{{Cite web|title=JDK 8u291 Bug Fixes
|url=https://www.oracle.com/java/technologies/javase/8u291-bugfixes.html|access-date=2022-04-19|website=
|-
|Java SE 8 Update 301<ref>{{Cite web|title=Java SE Development Kit 8, Update 301 Release Notes|url=https://www.oracle.com/java/technologies/javase/8u301-relnotes.html|access-date=2022-04-19|website=
|2021-07-20
|New features, changes, 90 bug fixes.<ref>{{Cite web|title=JDK 8u301 Bug Fixes
|url=https://www.oracle.com/java/technologies/javase/8u301-bugfixes.html|access-date=2022-04-19|website=
|-
|Java SE 8 Update 311<ref>{{Cite web|title=Java SE Development Kit 8, Update 311 Release Notes|url=https://www.oracle.com/java/technologies/javase/8u311-relnotes.html|access-date=2022-04-19|website=
|2021-10-19
|New features, changes, 52 bug fixes.<ref>{{Cite web|title=JDK 8u311 Bug Fixes
|url=https://www.oracle.com/java/technologies/javase/8u311-bugfixes.html|access-date=2022-04-19|website=
|-
|Java SE 8 Update 321<ref>{{Cite web|title=Java SE Development Kit 8, Update 321 Release Notes|url=https://www.oracle.com/java/technologies/javase/8u321-relnotes.html|access-date=2022-04-19|website=
|2022-01-18
|New features, changes, 62 bug fixes.<ref>{{Cite web|title=Java SE Development Kit 8, Update 321 Bug Fixes
|url=https://www.oracle.com/java/technologies/javase/8u321-bugfixes.html|access-date=2022-04-19|website=
|-
|Java SE 8 Update 331<ref>{{Cite web|title=Java SE Development Kit 8, Update 331 Release Notes|url=https://www.oracle.com/java/technologies/javase/8u331-relnotes.html|access-date=2022-04-19|website=
|2022-04-19
|New features, changes, 37 bug fixes.<ref>{{Cite web|title=Java SE Development Kit 8, Update 331 Bug Fixes
|url=https://www.oracle.com/java/technologies/javase/8u331-bugfixes.html|access-date=2022-04-19|website=
|-
|Java SE 8 Update 333<ref>{{Cite web|title=Java SE Development Kit 8, Update 333 Release Notes|url=https://www.oracle.com/java/technologies/javase/8u333-relnotes.html|access-date=2022-05-02|website=
|2022-05-02
|Patch w/1 change and 2 bug fixes.<ref>{{Cite web|title=Java SE Development Kit 8, Update 333 Bug Fixes
|url=https://www.oracle.com/java/technologies/javase/8u333-relnotes.html|access-date=2022-05-02|website=
|-
|Java SE 8 Update 341<ref>{{Cite web|title=Java SE Development Kit 8, Update 341 Release Notes|url=https://www.oracle.com/java/technologies/javase/8u341-relnotes.html|access-date=2022-07-30|website=
|2022-07-19
|New features, changes, 42 bug fixes.<ref>{{Cite web|title=Java SE Development Kit 8, Update 341 Bug Fixes
|url=https://www.oracle.com/java/technologies/javase/8u341-bugfixes.html|access-date=2022-07-30|website=
|-
|Java SE 8 Update 351<ref>{{Cite web|title=Java SE Development Kit 8, Update 351 Release Notes|url=https://www.oracle.com/java/technologies/javase/8u351-relnotes.html|access-date=2022-10-18|website=
|2022-10-18
|New features, changes, 95 bug fixes.<ref>{{Cite web|title=Java SE Development Kit 8, Update 351 Bug Fixes
|url=https://www.oracle.com/java/technologies/javase/8u351-bugfixes.html|access-date=2022-10-18|website=
|-
|Java SE 8 Update 361<ref>{{Cite web|title=Java SE Development Kit 8, Update 361 Release Notes|url=https://www.oracle.com/java/technologies/javase/8u361-relnotes.html|access-date=2023-03-24|website=
|2023-01-17
|New features, changes, bug fixes.
|-
|Java SE 8 Update 371<ref>{{Cite web|title=Java SE Development Kit 8, Update 371 Release Notes|url=https://www.oracle.com/java/technologies/javase/8u371-relnotes.html|website=
|2023-04-18
|
|-
|Java SE 8 Update 381<ref>{{Cite web|title=Java SE Development Kit 8, Update 381 Release Notes|url=https://www.oracle.com/java/technologies/javase/8u381-relnotes.html|access-date=2023-09-12|website=
|2023-07-18
|Security Patches
|-
|Java SE 8 Update 391<ref>{{Cite web|title=Java SE Development Kit 8, Update 391 Release Notes|url=https://www.oracle.com/java/technologies/javase/8u391-relnotes.html|access-date=2023-11-15|website=
|2023-10-17
|
|-
|Java SE 8 Update 401<ref>{{Cite web|title=Java SE Development Kit 8, Update 401 Release Notes|url=https://www.oracle.com/java/technologies/javase/8u401-relnotes.html#R180_401|website=
|2024-01-16
|
|-
|Java SE 8 Update 411<ref name=8u411>{{Cite web|title=Java SE Development Kit 8, Update 411 Release Notes|url=https://www.oracle.com/java/technologies/javase/8u411-relnotes.html|website=
|2024-04-16
|Update time zone data to IANA TZ Data 2024a, new features, changes, updates to third-party libraries, 37 bug fixes.<ref name=8u411
|-
|Java SE 8 Update 421<ref name=8u421>{{Cite web|title=Java SE Development Kit 8, Update 421 Release Notes|url=https://www.oracle.com/java/technologies/javase/8u421-relnotes.html|website=
|2024-07-16
|
|-
|Java SE 8 Update 431<ref>{{Cite web |title=Java SE Development Kit 8, Update 431 Release Notes |url=https://www.oracle.com/java/technologies/javase/8u431-relnotes.html |website=
|2024-10-15
|
|-
|Java SE 8 Update 441<ref>{{Cite web |title=Java SE Development Kit 8, Update 441 Release Notes |url=https://www.oracle.com/java/technologies/javase/8u441-relnotes.html |website=
|2025-01-21
|
|-
|Java SE 8 Update 451<ref>{{Cite web |title=Java SE Development Kit 8, Update 451 Release Notes |url=https://www.oracle.com/java/technologies/javase/8u451-relnotes.html |website=oracle.com}}</ref>
|2025-04-15
|
|-
|Java SE 8 Update 461<ref>{{Cite web |title=Java SE Development Kit 8, Update 461 Release Notes |url=https://www.oracle.com/java/technologies/javase/8u461-relnotes.html |website=oracle.com}}</ref>
|2025-07-15
|
|-
Line 876 ⟶ 893:
{{Infobox Java version
| version name = Java SE 9
| released = {{Start date and age|2017|9|21|df=y|br=yes|paren=yes}}
| jeps = 9
| public_death = {{End date|2018|
}}
Java SE 9 was made available on September 21, 2017<ref>{{cite web|url=https://openjdk.java.net/projects/jdk9/|title=JDK 9|access-date=2017-06-16}}</ref> due to controversial acceptance of the current implementation of Project Jigsaw by Java Executive Committee<ref>{{cite web|url=https://www.infoworld.com/article/3195180/java/java-modularity-specification-opposed-by-red-hat-ibm-is-voted-down.html|title=Java modularity specification opposed by Red Hat, IBM is voted down|access-date=2017-06-16| publisher=[[InfoWorld]]|date=2017-05-09}}</ref> which led Oracle to fix some open issues and concerns and to refine some critical technical questions. In the last days of June 2017, Java Community Process expressed nearly unanimous consensus on the proposed Module System scheme.<ref>{{cite web |url= https://www.theregister.co.uk/2017/07/02/java_9_release_back_on_track/|title=Java 9 release back on track, community votes 'yes' |first=Richard |last=Chirgwin |work=[[theregister.co.uk]] |date=July 2, 2017|access-date=2017-07-29}}</ref>
* JSR 376: Modularization of the JDK under Project Jigsaw ([[Java Platform Module System]])<ref name="Jigsaw">{{cite web|url=https://openjdk.java.net/projects/jigsaw/|title=Project Jigsaw|publisher=OpenJDK}}<br
* [[JavaDB]] was removed from JDK<ref>{{cite web|title=Java Platform, Standard Edition Oracle JDK 9 Migration Guide|url=https://docs.oracle.com/javase/9/migrate/toc.htm|website=docs.oracle.com|access-date=15 May 2018}}</ref>
* {{Java JEP|193|Variable handles}}, define a standard means to invoke the equivalents of various <code>java.util.concurrent.atomic</code> and <code>sun.misc.Unsafe</code> operations
Line 893 ⟶ 910:
* {{Java JEP|295|Ahead-of-Time Compilation}}, [[ahead-of-time compilation]] provided by [[GraalVM]]
The first Java 9 release candidate was released on August 9, 2017.<ref name="Java 9 RC1">{{cite web|url=https://mail.openjdk.java.net/pipermail/jdk9-dev/2017-August/005940.html|title=JDK 9: First Release Candidate|date=2017-08-09|access-date=2017-08-21}}</ref> The first stable release of Java 9 was on September 21, 2017.<ref>{{cite web|url=https://www.techworld.com/news/developers/java-9-release-date-new-features-3660988/|title=Java 9: Release date and new features|publisher=techworld.com|date=2017-07-21|access-date=2017-09-16|archive-date=2017-12-07|archive-url=https://web.archive.org/web/20171207050626/https://www.techworld.com/news/developers/java-9-release-date-new-features-3660988/|url-status=dead}}<br
=== History ===
Line 941 ⟶ 958:
* Disable exportable cipher suites (<small>security-libs/javax.net.ssl</small>)
* JMX Connections need deserialization filters (<small>core-svc/javax.management</small>)
* JDK Transform, Validation and XPath use the system-default parser
'''''Bug fixes'''''
* JNLP files won't launch from IE11 on Windows 10 Creators Update (<small>deploy/webstart</small>)
Line 953 ⟶ 970:
{{Infobox Java version
| version name = Java SE 10
| released = {{Start date and age|2018|3|20|df=y|br=yes|paren=yes}}
| jeps = 12
| public_death = {{End date|2018|
}}
OpenJDK 10 was released on March 20, 2018, with twelve new features confirmed.<ref>{{cite web
* {{Java JEP|286|Local-Variable Type Inference}}
* {{Java JEP|296|Consolidate the JDK Forest into a Single Repository}}
Line 1,013 ⟶ 1,030:
{{Anchor|Java 11}}
== Java SE 11 (LTS) ==
{{Infobox Java version
| version name = Java SE 11
| lts = yes
| released = {{Start date and age|2018|9|25|df=y|br=yes|paren=yes}}
| jeps = 17
| removed = [[Java applet]]s, [[Java Web Start]], [[JavaFX]], [[JavaEE]], and [[CORBA]] modules
}}
JDK 11 was released on September 25, 2018 and the version is currently open for bug fixes. It offers LTS, or [[long-term support|Long-Term Support]]. Among others, Java 11 includes a number of new features, such as:<ref>{{cite web|
* {{Java JEP|181|Nest-Based Access Control}}
* {{Java JEP|309|Dynamic Class-File Constants}}
Line 1,426 ⟶ 1,443:
{{Infobox Java version
| version name = Java SE 12
| released = {{Start date and age|2019|3|19|df=y|br=yes|paren=yes}}
| jeps = 8
| previews = Enhanced [[switch statement]]s
| public_death = {{End date|2019|
}}
JDK 12 was released on March 19, 2019. Among others, Java 12 includes a number of new features, such as:<ref>{{cite web|
* {{Java JEP|189|Shenandoah: A Low-Pause-Time Garbage Collector (Experimental)}}
* {{Java JEP|230|Microbenchmark Suite}}
Line 1,492 ⟶ 1,509:
{{Infobox Java version
| version name = Java SE 13
| released = {{Start date and age|2019|9|17|df=y|br=yes|paren=yes}}
| jeps = 5
| previews = Enhanced [[switch statement]]s, text blocks
| public_death = {{End date|2023|
}}
JDK 13 was released on September 17, 2019. Java 13 includes the following new features, as well as "hundreds of smaller enhancements and thousands of bug fixes".<ref>{{Cite web|url=https://mail.openjdk.java.net/pipermail/announce/2019-September/000274.html|title=Java 13 / JDK 13: General Availability|first=mark reinhold at|last=oracle.com|date=September 17, 2019}}</ref>
Line 1,554 ⟶ 1,571:
{{Infobox Java version
| version name = Java SE 14
| released = {{Start date and age|2020|3|17|df=y|br=yes|paren=yes}}
| jeps = 16
| features = Helpful [[NullPointerException]]s, enhanced [[switch statement]]s
Line 1,560 ⟶ 1,577:
| previews = [[Pattern matching]] for [[instanceof]], [[record (computer science)|records]], text blocks
| incubating = jpackager, Foreign memory access
| public_death = {{End date|2020|
}}
JDK 14 was released on March 17, 2020. Java 14 includes the following new features, as well as "hundreds of smaller enhancements and thousands of bug fixes".<ref>{{Cite web|url=https://mail.openjdk.java.net/pipermail/announce/2020-March/000282.html|title=Java 14 / JDK 14: General Availability|first=mark reinhold at|last=oracle.com|date=March 17, 2020}}</ref>
Line 1,597 ⟶ 1,614:
</syntaxhighlight>
JEP 359 ''Records'' allows easy creation of simple immutable [[Tuple]]-like classes.<ref>{{cite news |
<syntaxhighlight lang="java">
Line 1,641 ⟶ 1,658:
{{Infobox Java version
| version name = Java SE 15
| released = {{Start date and age|2020|9|15|df=y|br=yes|paren=yes}}
| jeps = 14
| features = Hidden classes, ZGC ([[Garbage collection (computer science)|garbage collector]]), Shenandoah (garbage collector), text blocks
Line 1,647 ⟶ 1,664:
| previews = [[Sealed class]]es, [[pattern matching]] of [[instanceof]], [[record (computer science)|records]]
| incubating = Foreign-memory access
| public_death = {{End date|2023|
}}
JDK 15 was released on September 15, 2020. Java 15 adds e.g. support for [[String literal#Multiline string literals|multi-line string literals]] (aka Text Blocks). The Shenandoah and Z garbage collectors (latter sometimes abbreviated ZGC) are now ready for use in production (i.e. no longer marked experimental). Support for Oracle's [[Solaris (operating system)|Solaris]] operating system (and SPARC CPUs) is dropped (while still available in e.g. Java 11). The Nashorn JavaScript Engine is removed. Also removed some root [[CA certificate]]s.
* {{Java JEP|339|Edwards-Curve Digital Signature Algorithm (EdDSA)}}
Line 1,715 ⟶ 1,733:
{{Infobox Java version
| version name = Java SE 16
| released = {{Start date and age|2021|3|16|df=y|br=yes|paren=yes}}
| jeps = 17
| features = Windows/AArch64 Port, jpackager, [[pattern matching]] for [[instanceof]], [[record (computer science)|records]]
| previews = [[Sealed class]]es
| incubating = Foreign [[linker (computing)|linker]], Foreign-memory access
| public_death = {{End date|2021|
}}
JDK 16 was released on March 16, 2021. Java 16 removes [[ahead-of-time compilation|Ahead-of-Time compilation]] (and [[GraalVM|Graal JIT]]) options.<ref>{{Cite web|title=[JDK-8255616] Removal of experimental features AOT and Graal JIT – Java Bug System|url=https://bugs.openjdk.java.net/browse/JDK-8255616|access-date=2021-02-19|website=bugs.openjdk.java.net}}</ref> The Java implementation itself was and is still written in [[C++]], while as of Java 16, more recent [[C++14]] (but still not e.g. [[C++17]] or [[C++20]]) is allowed. The code was also moved to [[GitHub]], dropping [[Mercurial]] as the [[Version control|source control]] system.
* {{Java JEP|338|Vector API (Incubator)}}
Line 1,729 ⟶ 1,748:
* {{Java JEP|376|ZGC: Concurrent Thread-Stack Processing}}
* {{Java JEP|380|Unix-Domain Socket Channels}}
* {{Java JEP|386|Alpine Linux Port}}
* {{Java JEP|387|Elastic Metaspace}}
* {{Java JEP|388|Windows/AArch64 Port}}
Line 1,779 ⟶ 1,798:
{{Anchor|Java 17}}
== Java SE 17 (LTS) ==
{{Infobox Java version
| version name = Java SE 17
| lts = yes
| released = {{Start date and age|2021|9|14|df=y|br=yes|paren=yes}}
| jeps = 14
| features = [[macOS]]/AArch64 Port, [[sealed class]]es
Line 1,988 ⟶ 2,007:
'''''Bug fixes'''''
* 46 bug fixes<ref>{{Cite web|date=2024-01-16|title=JDK 17.0.10 Bug Fixes|url=https://www.oracle.com/java/technologies/javase/17-0-10-relnotes.html#bugfixes-R17_0_10|website=oracle.com}}</ref>
|-
| Java SE 17.0.11<ref>{{cite web|url=https://www.oracle.com/java/technologies/javase/17-0-11-relnotes.html|title=JDK 17.0.11 Release Notes|publisher=oracle.com|date=2024-04-16}}</ref>
| 2024-04-16
|
|-
| Java SE 17.0.12<ref>{{cite web|url=https://www.oracle.com/java/technologies/javase/17-0-12-relnotes.html|title=JDK 17.0.12 Release Notes|publisher=oracle.com|date=2024-07-16}}</ref>
| 2024-07-16
|
|-
| Java SE 17.0.13<ref>{{cite web|url=https://www.oracle.com/java/technologies/javase/17-0-13-relnotes.html|title=JDK 17.0.13 Release Notes|publisher=oracle.com|date=2024-10-15}}</ref>
| 2024-10-15
|
|-
| Java SE 17.0.14<ref>{{cite web|url=https://www.oracle.com/java/technologies/javase/17-0-14-relnotes.html|title=JDK 17.0.14 Release Notes|publisher=oracle.com|date=2025-01-21}}</ref>
| 2025-01-21
|
|-
| Java SE 17.0.15<ref>{{cite web|url=https://www.oracle.com/java/technologies/javase/17-0-15-relnotes.html|title=JDK 17.0.15 Release Notes|publisher=oracle.com|date=2025-04-15}}</ref>
| 2025-04-15
|
|}
Line 1,995 ⟶ 2,035:
{{Infobox Java version
| version name = Java SE 18
| released = {{Start date and age|2022|3|22|df=y|br=yes|paren=yes}}
| jeps = 9
| features = {{ubl|UTF by default|Javadoc code snippets}}
Line 2,001 ⟶ 2,041:
| previews = Switch pattern matching
| incubating = {{ubl|Vector API|Foreign function & memory API}}
| public_death = {{End date|2022|
}}
JDK 18 was released on March 22, 2022.<ref name="openJDK 18">{{Cite web |title=JDK 18 |url=https://openjdk.org/projects/jdk/18/ |access-date=28 June 2023 |website=openjdk.org}}</ref>
Line 2,067 ⟶ 2,107:
{{Infobox Java version
| version name = Java SE 19
| released = {{Start date and age|2022|
| jeps = 7
| previews = {{ubl|Foreign function & memory API|Switch pattern matching}}
| incubating = {{ubl|Vector API|Structured concurrency}}
| lts = no
| public_death = {{End date|2023|
}}
Line 2,132 ⟶ 2,172:
| version name = Java SE 20
| lts = no
| released = {{Start date and age|2023|3|21|df=y|br=yes|paren=yes}}
| jeps = 7
| incubating = Scoped values
| public_support_ended = {{End date|2023|
}}
Line 2,188 ⟶ 2,228:
{{Anchor|Java 21}}
== Java SE 21 (LTS) ==
{{Infobox Java version
| version name = Java SE 21
| lts = yes
| released = {{Start date and age|2023|9|19|df=y|br=yes|paren=yes}}
| jeps = 15
| features = Record patterns, pattern matching for switch, virtual threads
Line 2,230 ⟶ 2,270:
}
</syntaxhighlight>
=== Java 21 updates ===
{| class="wikitable mw-collapsible mw-collapsed"
Line 2,283 ⟶ 2,324:
'''''Bug fixes'''''
* 27 bug fixes<ref>{{Cite web|date=2024-04-16|title=JDK 21.0.3 Bug Fixes|url=https://www.oracle.com/java/technologies/javase/21-0-3-relnotes.html#bugfixes-R21_0_3|website=oracle.com}}</ref>
|-
|Java SE 21.0.4<ref>{{Cite web|date=2024-07-16|title=JDK 21.0.4 Release Notes|url=https://www.oracle.com/java/technologies/javase/21-0-4-relnotes.html|website=oracle.com}}</ref>
|2024-07-16
|
|-
|Java SE 21.0.5<ref>{{Cite web|date=2024-10-15|title=JDK 21.0.5 Release Notes|url=https://www.oracle.com/java/technologies/javase/21-0-5-relnotes.html|website=oracle.com}}</ref>
|2024-10-15
|
|-
|Java SE 21.0.6<ref>{{Cite web|date=2025-01-21|title=JDK 21.0.6 Release Notes|url=https://www.oracle.com/java/technologies/javase/21-0-6-relnotes.html|website=oracle.com}}</ref>
|2025-01-21
|
|-
|Java SE 21.0.7<ref>{{Cite web|date=2025-04-15|title=JDK 21.0.7 Release Notes|url=https://www.oracle.com/java/technologies/javase/21-0-7-relnotes.html|website=oracle.com}}</ref>
|2025-04-15
|
|}
Line 2,290 ⟶ 2,347:
{{Infobox Java version
| version name = Java SE 22
| released = {{Start date and age|2024|3|19|df=y|br=yes|paren=yes}}
| lts = no
| jeps = 12
| public_support_ended = {{End date|2024|
| features = Foreign function and memory API, unnamed variables and patterns
| previews = Structured concurrency, string templates
Line 2,322 ⟶ 2,379:
{{Infobox Java version
| version name = Java SE 23
| released = {{Start date and age|2024|9|17|df=y|br=yes|paren=yes}}
| jeps = 12
| features = Markdown documentation comments
Line 2,349 ⟶ 2,406:
{{Anchor|Java 24}}
== Java SE 24 ==
{{Infobox Java version
| version name = Java SE 24
| released = {{Start date and age|2025|3|18|df=y|br=yes|paren=yes}}
| jeps = 24
|
}}
The specification for Java 24 was finalized in December 2024, with 24 JEPs making it into the release and it
The following JEPs were targeted to this version of Java SE:<ref name="j24jeps">{{cite web |url=https://openjdk.org/projects/jdk/24/ |title=JDK 24 |website=OpenJDK |publisher=Oracle Corporation |access-date=November 9, 2024}}</ref>
Line 2,390 ⟶ 2,448:
{{Anchor|Java 25}}
== Java SE 25 (LTS) ==
{{Infobox Java version
| version name = Java SE 25
| lts = yes
| released = {{Start date and age|2025|9|16|df=y|br=yes|paren=yes}} | jeps =
| features = {{Ubl|
* Module Import Declarations
* Flexible Constructor Bodies
}}
| removed = {{Ubl|
* 32-bit x86 Port
}}
| previews = {{Ubl |
* Primitive Types in Patterns, instanceof, and switch
* PEM Encodings of Cryptographic Objects
}}
| unreleased = yes
}}
# {{Java JEP|470|PEM Encodings of Cryptographic Objects (Preview)}}
# {{Java JEP|502|Stable Values (Preview)}}
# {{Java JEP|503|Remove the 32-bit x86 Port}}
# {{Java JEP|505|Structured Concurrency (Fifth Preview)}}
# {{Java JEP|506|Scoped Values}}
# {{Java JEP|507|Primitive Types in Patterns, instanceof, and switch (Third Preview)}}
# {{Java JEP|508|Vector API (Tenth Incubator)}}
# {{Java JEP|509|JFR CPU-Time Profiling (Experimental)}}
# {{Java JEP|510|Key Derivation Function API}}
# {{Java JEP|511|Module Import Declarations}}
# {{Java JEP|512|Compact Source Files and Instance Main Methods}}
# {{Java JEP|513|Flexible Constructor Bodies}}
# {{Java JEP|514|Ahead-of-Time Command-Line Ergonomics}}
# {{Java JEP|515|Ahead-of-Time Method Profiling}}
# {{Java JEP|518|JFR Cooperative Sampling}}
# {{Java JEP|519|Compact Object Headers}}
# {{Java JEP|520|JFR Method Timing & Tracing}}
# {{Java JEP|521|Generational Shenandoah}}
{{Clear}}
Line 2,426 ⟶ 2,515:
Both [[Jikes]] and [[Jikes RVM]] are open-source research projects that IBM developed.
Several other implementations exist that started as proprietary software, but are now open source. IBM initially developed [[OpenJ9]] as the proprietary J9,<ref>{{Cite web|url=https://developer.ibm.com/javasdk/downloads/|title=Downloads – Overview|date=July 18, 2016}}</ref> but has since relicensed the project and donated it to the [[Eclipse Foundation]]. [[JRockit]] is a proprietary implementation that was acquired by Oracle and incorporated into subsequent OpenJDK versions.
== References ==
{{reflist|refs=
<ref name=
<ref name=semeru>{{Cite web|url=https://www.ibm.com/support/pages/semeru-runtimes-support|title=IBM Semeru Runtimes lifecycle}}</ref>
<ref name=azul>{{Cite web|url=https://www.azul.com/products/azul-support-roadmap|title=Azul JDK roadmap}}</ref>
<ref name=corretto>{{Cite web|url=https://aws.amazon.com/corretto/faqs|title = Amazon Corretto support calendar}}</ref>
<ref name=redhat>{{Cite web|url=https://access.redhat.com/articles/1299013|title = Red Hat OpenJDK Life Cycle and Support Policy| date=19 November 2023 }}</ref>
<ref name=liberica>{{Cite web|url=https://bell-sw.com/support/#roadmap|title = Liberica JDK roadmap}}</ref>
<ref name=temurin>{{Cite web|url=https://adoptium.net/support|title = Eclipse Temurin Release Roadmap}}</ref>
<ref name=oracle>{{Cite web|url=https://www.oracle.com/java/technologies/java-se-support-roadmap.html|title=Oracle Java SE Support Roadmap|website=
}}
|