Time Based Release Versioning 


JEP 322 − Time-Based Release Versioning

After Java 10, Oracle has launched a stern time-based launch versioning model for Java launch. Now, Java will have an important launch once every six months. Java 10 was launched in March 2018 and operating along, all-important versions are organized to launch in March and September months of every year. Launches are further categorized into three wide classifications.

  • Feature Release − A Feature launch has language-defined attributes, JVM features, New/Improved APIs, Removal/Deprecation of APIs. The time of these attributes launch is predetermined and there is no restriction on attributes to be included in a particular release. If an undergoing development attribute is not a part of the latest launch then it will be already pre-planned in the next release.
  • Update Release − An Update launch involves bug fixes, security issue fixes, regression fixes, etc. Each and every update launch is pre-planned quarterly in Jan, April, July, and Oct months. Each and every attribute launch will collect two Update launches prior to the next attribute launch being announced.
  • Long Term Support(LTS) Release − Long-term hold-up launch will be declared succeeding every three years initiated from Sep 2018. Oracle will give assistance and updates for this launch for the upcoming three years. This launch is initially for Corporates making use of Java in production deployments.

Version Format

The below-given format is followed by the version now:



  • $FEATURE − This value indicates the important attribute launch and will get incremented by 1 after each and every attribute Release. It is 10 for Java 10.
  • $INTERIM − This value indicates any non-attributed, non-update launch which accommodates bug fixes and improvements. This launch is not containing any contradictory changes, any API detach, or replacement to standard API. An attribute launch will contain this counter as 0.
  • $UPDATE − This value indicates the Update launch done after an attribute launch. For instance, an updated launch of Java in April 2018 is JDK 10.0.1 and for July 2018 is JDK 10.0.2 and repeated the same like this.
  • $PATCH − This value indicates an emergency launch incremented only in case a critical affair is to be upgraded on an emergent basis.


Versioning details of JAVA 10 is given in the below given example:

public class Tester {
   public static void main(String[] args) {
      Runtime.Version version = Runtime.version();
     System.out.printf(" feature: %s%n interim: %s%n update: %s%n patch: %s%n",


You will the below-given result:

feature: 10
interim: 0
update: 2
patch: 0