Starting from Java 10, Oracle has adapted time based version-string scheme [JEP 322]. The new time-based model has replaced the feature-based, multi-year release model of the past. Unlike the old releases, the new time-based releases will not be delayed and features will be released every six months, with no constraints on what features can go out in the releases.
The updates releases will occur every quarter (Jan, April, July, Oct). Update releases will be strictly limited to fixes of security issues, regressions, and bugs in newer features. Going by schedule planning, we can say that each feature release will receive two updates before the next feature release.
Java version format
If you run command java -version
in comaand prompt/terminal the you will get outout version information like this:
C:\Users\Lokesh>java -version java version "10.0.1" 2018-04-17 Java(TM) SE Runtime Environment 18.3 (build 10.0.1+10) Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.1+10, mixed mode)
The new format of the version number is:
$FEATURE.$INTERIM.$UPDATE.$PATCH
Counter Name | Description |
---|---|
$FEATURE |
It will be incremented every 6 months and based on feature release versions e.g: JDK 10, JDK 11. (Formerly $MAJOR .) |
$INTERIM |
Usually this will be zero, as there will be no interim release in a six month period. It will be incremented for non-feature releases that contain compatible bug fixes and enhancements but no incompatible changes, no feature removals, and no changes to standard APIs. (Formerly $MINOR .) |
$UPDATE |
It will be incremented for compatible update releases that fix security issues, regressions, and bugs in newer features. (Formerly $SECURITY .) |
$PATCH |
It will be incremented only when it’s necessary to produce an emergency release to fix a critical issue. |
Java Version API
Runtime.version()
can be used to get version counter values programmatically. e.g.
Version version = Runtime.version(); version.feature(); version.interim(); version.update(); version.patch(); Output: 10 0 1 0
Parse existing version
Version version = Runtime.Version.parse("10.0.1"); version.feature(); version.interim(); version.update(); version.patch();
Long Term Release (LTS)
It is mainly for enterprise customers. LTS version of the products will offer premier and sustained support from Oracle and it will be targeted every 3 years. Also, updates for these releases will be available for at least three years.
This will cause “LTS” to be displayed prominently in the output of java –versions. e.g. e.g., 11.0.2+13-LTS
Happy Learning !!
Leave a Reply