Developers may need to know a product's version string for various purposes, depending on whether they are developing and deploying a product or downloading and integrating a product.
The following table explains how to interpret SDK/JRE release version string information.
Note that this convention was not in effect prior to the 1.3.0 feature release. The output of java -version has had the same format since 1.3.1
System Properties and the java -version Command
The output of the java -version command includes a product version identifier and a build indentifier. This output is determined by the values of several system properties, and those system properties can themselves be examined programmatically at runtime.
| System Property Name |
System Property Content |
Where Displayed in java -version Output |
|
java.version
|
|
-
Line one displays the product version.
|
|
java.runtime.version
|
-
product version
-
product build identifier
|
-
Line one displays the product version.
-
Line two displays the build identifier.
|
Numbering Format Specifications
Every SDK/JRE release that is shipped has a product version string and
a build identifier associated with it. The general rules for setting either a version string or a build number string are as follows. For more specific rules and examples, see the following table:
-
The content of the java.version system property must always be unique for each external binary.
-
A separator is always used between different parts of the string so that
ordering can be determined programmically. (For example, a version string of "1.3.1beta" is not acceptable. A version string of "1.3.1-beta" is acceptable.)
-
The format should be numeric and in lower case where applicable
with a period "." within the field itself and a dash "-" between fields.
-
A period "." separator indicates a major version.
-
An underbar "_" separator is used to indicate an update release.
-
A dash "-" separator is used to indicate a non-GA (non-FCS) release.
-
A GA (FCS) product version or build identifier must not contain a dash (-).
-
No asterik "*" or plus sign "+" is allowed, since these are used as wildcards for the matching logic.
-
The content of the java.runtime.version system property can be expanded (beyond that of the java.version system property) to include the build id.
-
All GA (FCS) versions are ordered based on the standard dot-notation. For example: 1.3.0 < 1.3.0_01 < 1.3.1 < 1.3.1_01.
Syntax Notation
Syntax notation used in the following table is:
J2SE Release and Version String Information
| Release Type |
Description |
Version Numbering Format |
Example java -version Output Strings |
|
Feature
|
Contains new functionality.
|
n.n.0<-identifier>
- The final digit is always a 0.
- The -identifier is required for any non-GA (non-FCS) release.
- A GA (FCS) release never has a -identifier.
|
The following output indicates a GA (FCS) release having a build indentifier of b24.
java version "1.3.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0-b24)
Java HotSpot(TM) Client VM (build 1.3.0-b24, mixed mode)
|
|
Maintenance
|
Contains engineering focused bug fixes.
|
n.n.n<-identifier>
- The final digit is never a 0.
- The -identifier is required for any non-GA (non-FCS) release.
- A GA (FCS) release never has a -identifier.
|
The following output indicates a beta, maintenance release having a build identifier of 09.
java version "1.3.1-beta"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1-beta-b09)
Java HotSpot(TM) Client VM (build 1.3.1_05-ea-b01, mixed mode)
|
|
Update
|
Contains customer focused bug fixes.
|
n.n.n_nn<-identifier>
- The first three digits are identical to those of the feature or maintenance release that is being updated.
- The two digits following the underbar indicate the update number. The higher the number, the more recent the update.
- The -identifier is required for any non-GA (non-FCS) release.
- A GA (FCS) release never has a -identifier.
|
The output indicates an early access, update release having a build identifier of b01.
java version "1.3.1_05-ea"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_05-ea-b01)
Java HotSpot(TM) Client VM (build 1.3.1_05-ea-b01, mixed mode)
The output indicates a GA (FCS) update release having a build identifier of b02.
java version "1.3.1_05"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_05-b02)
Java HotSpot(TM) Client VM (build 1.3.1_05-b02, mixed mode)
The output indicates an early access, update release having
a build identifier of b01.
java version "1.4.0_03-ea"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0_03-ea-b01)
Java HotSpot(TM) Client VM (build 1.4.0_03-ea-b01, mixed mode)
The output indicates a GA (FCS) update release having a build identifier of b04.
java version "1.4.0_03"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0_03-b04)
Java HotSpot(TM) Client VM (build 1.4.0_03-b04, mixed mode)
|
Also see: