Java版本歷史
Java語言自JDK1.0版本以來經歷了許多次更新，也在基本程式庫中增加了大量的類別和套件。從J2SE 1.4開始，Java語言的變動由 Java Community Process（JCP）管理，JCP使用Java規範請求（Java Specification Requests，JSRs）來建議和定義對Java平台內容的新增和修改。Java語言由Java語言規範（Java Language Specification，JLS）定義，對JLS的更改則根據JSR 901管理。
除了語言上的變化，多年來Java标准庫（JCL）发生了巨大的变化，從JDK 1.0中的幾百個類暴增到J2SE 5中的三千多個類。Swing、Java2D等的全新API被加入其中，而許多原本JDK 1.0的類和方法已被弃用。當然，仍然有一些程式可以將Java程式從新版本的Java平台轉換為較舊版本（例如Java 5.0降轉到1.4）。
Java 7發布後，Oracle承諾回到以前每兩年發布一次的發布週期。但在2013年時，Oracle卻宣布他們將Java 8延遲一年發表，官方表示是為了修復Java的安全漏洞。
2017年9月，Java 平台的主架构师 Mark Reinhold 发出提议，要求将 Java 的功能更新周期从之前的每两年一个新版本缩减到每六个月一个新版本。该提议获得了通过，并在提出后不久生效。
Java 17, 11, 8 为目前提供支持的 LTS（长期支持）版本；Java 10 是上一个快速发布版本，且已不再被支持。2018年9月，随着 Java 11 的发布，Java 10 自当日起不再被支持。Oracle 将在 2019 年 1 月前为商业用途中的 Java 8 长期支持，而针对非商用的更新将继续提供，直至 2020 年 12 月；此外，AdoptOpenJDK 也为 Java 8 提供免费更新。针对 Java 11 的长期支持将不再由 Oracle 提供，而是改由 OpenJDK 社区提供，例如 Eclipse Adoptium（以前称之为 AdoptOpenJDK） 的 Eclipse Temurin。
第一個1995年發布的alpha和beta Java公開版本，API和ABI非常不穩定。 支援Java Web瀏覽器被取名為WebRunner。
第一個版本於1996年1月23日發布，叫做為Oak。而真正第一個穩定的版本JDK 1.0.2，被稱作Java 1。
1997年2月19日發布。新增功能主要包括：
1998年12月8日發布，代號為Playground。 该版本到J2SE 5.0為止的後續版本被更名為Java 2，而版本名稱「J2SE」（Java 2平台，標準版）取代JDK以區別J2EE（Java 2平台，企業版） 和J2ME（Java 2 Platform，Micro Edition）基礎平台。這是Java的一個非常重要的版本，它將Java平台的大小增加至原先的三倍，在59個程式包中達到了1520個類。主要增加包括：代號為Kestrel。在的版本中最著名的改變包括：
代號為Merlin。2002年2月6日釋出了JSR 59，是第一個在JCP下開發的Java平臺。主要的變化包括︰ Java 1.4開放支源和安全性更新於2008年10月終止。Oracle客戶的付費的安全性更新也在2013年2月結束。
代號為Tiger。這個在2004年9月30日釋出的版本原本以1.5編號，也就是仍然使用內部版本編號。這個數字輩改變是為了「更好地反映成熟度、穩定性、可擴充性和 J2SE 的安全水準」。這個版本是在JSR 176底下被開發。
J2SE 5.0在2008年4月8日進入其即將停止公開更新的期間；2009年11月3日正式不公開開放更新。Oracle客戶直到2015年5月都能透過付費的方式取得更新 。
Tiger增加了若干個重要的新語言功能。 另外也有以下這些對於基本程式庫的改善： Java 5是Java的最後一個正式支援Microsoft Windows 98和Windows ME的版本，而Windows Vista是J2SE 5在2009年10月的Java 5生命週期之前支援的Windows的最新版本。
Java 5 Update 5（1.5.0_05）是Java在Windows 95（裝了Internet Explorer 5.5 的）和Windows NT 4.0上運行的最後一個版本。
Java 5 最初出現在 Mac OS X 10.4 （Tiger），到了 Mac OS X 10.5 （Leopard）時成為了預設的 Java 版本。
此版本推出了JAVA語言中，一個新的版本控制系統，而舊版本控制系統仍然可以在開發者資源庫中繼續使用。這種對應關係持續維持到以後的版本 (Java 6 = JDK 1.6, Java 7 = JDK 1.7, 以此類推).
代號為Mustang。版本發佈於2006年12月11日，Sun把原本的名稱「J2SE」改為「Java SE」，然後再從版本號中去掉「.0」，而開發者內部編號仍然是1.6.0。這個版本是根據JSR 270開發的。
在發展階段，新版本大概每周都釋出包括一些功能增強和漏洞的修復。Beta版本在2006年2月和6月釋出，也就是為什麼2006年12月11日變成最終的版本。
本版本包含的主要更改： Java 6可以安裝到在64位（Core 2 Duo和更高版本）處理器機器上運行的Mac OS X 10.5（Leopard）。 運行Mac OS X 10.6（Snow Leopard）的32位和64位機器也支援Java 6。
Java 6在2013年2月到了它支援生命週期的尾聲，此時所有公開更新（包括安全更新）都計劃停止。 Oracle在2013年3月和4月發布了另外兩個對Java 6的更新，修補了一些安全漏洞。
JAVA 6釋出後，Sun和後來的Oracle之後，釋出了幾個更新，而不更改任何公開的API，增強了終端使用者的可用性或固定的漏洞。自2016 年1月，JAVA 6和其它更舊的版本已無法從Oracle下載。  JAVA 7 （代號Dolphin） 是一個重大的更新，在 2011年7月7日亮相，並在2011年7月28日開放給開發者使用。發展時期被分類成十三个重要階段，最後一個階段在2011年6月6日完成。平均來看，每個里程碑各有8個版本（就是一般包括的功能增強和漏洞修復） 。在 OpenJDK 7 專案中的功能清單中列出了很多的改變。
在 Java 7 中新增的功能包括：Lambda（Java 對匿名函数的實作）、Jigsaw（Java 對模块化的實作），以及其它一些 Coin 项目中的内容在 Java 7 裡被放棄，而转为Java 8一部份（其中 Jigsaw 直至 Java 9 才得到实现）。
從2012年4月開始，Java 7 一直是java.com的預設下載版本，直到 Java 8 发布。
Oracle 在每季度發布 Java 7 家族每季的公開更新，至2015年4月產品支援生命週期結束時停止。 Java 8 於2014年3月18日釋出， 包含了一些原本被計畫在 Java 7卻延遲的功能。
这些功能改进在 JDK Enhancement Proposals (JEPs) 的指导下得到了整合。 Java 8 不再支援 Windows XP ，但JDK 8 第 25 版更新仍然可以在 Windows XP安裝和運行。 先前JDK 8的更新版本可以在XP中運行，但必须通过强制解压安装程序来进行安装。
2014年10月后，Java 8 成为官方網站上預設的下載版本。
在2011年的JavaOne中，Oracle討論了一些他們希望在2016年于Java 9中发布的功能。Java 9 应当对千兆级堆拥有更好的支持，同时能够更好地集成本机代码，且拥有新的垃圾收集器G1和能够自我调节的JVM。2016年初，Java 9 的发布被重新定为2017年3月；2017年3月时，发布日期又被拖延至2017年7月；后来又因Java执行委员会对Jigsaw项目实现的分歧而最终定为2017年9月21日，在此期间Oracle回应了部分疑问，并对一些重要的技术问题进行了修正。在2017年6月的最后几天，JCP对拟议的模块系统方案达成了共识。Java 9 的首个发布候选版于2017年8月9日发布，首个稳定版于2017年9月21日发布。
OpenJDK 10 于2018年3月20日发布。此次更新包含以下12个新特性：JDK 11 于2018年9月25日发布。Java 11 包含如下更新：JDK 12 于2019年3月19日发布。该版本包含较多新特性，例如：JDK 13 於2019年9月17日發佈。該版本包含以下新特性以及很多的強化和很多的漏洞修補。JDK 14 发布于 2020 年 3 月 17 日。Java 14 包含了下方列出的新功能，以及“数百个小改进和数千个漏洞修复”。JDK 17 发布于2021年9月14日。Java 17是切换到新的6个月发布周期以来的第二个长期支持（LTS）版本（第一个是Java 11）。
OpenJDK 是一個自由開放源始碼軟體實作在Java Platform, Standard Edition (Java SE)。
在OpenJDK之前，許多各式各樣不同的公司和組織推出好幾個免費的Java實作。其中一個例子是Apache Harmony。 IBM也有提供Java實作，而RedHat則是通過IcedTea專案提供它：一個用於OpenJDK的架構和整合專案。