What is the difference in properties java.runtime.version and java.version

System Property Name | System Property Content  | Where Displayed in java version Output
---------------------|--------------------------|---------------------------------------
java.version         | product version          | Line one displays the product version
---------------------|--------------------------|---------------------------------------
java.runtime.version | product version          | Line one displays the product version
                     | product build identifier | Line two displays the build identifier

From the J2SE SDK/JRE Version String Naming Convention documentation:

  • 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.

It seems that the property value can therefore be equal to the java.runtime content or differentiate by the build id as already pointed out in the question.

Anyway, as previously stated in a comment to the question, the java.runtime.version property doesn't appear among the currently documented system properties.


One is JDK version, java.version and as the name suggest other is JRE version, R for the runtime


java.version is a product version information of Java Runtime environment(JRE). JRE is an implementation of the Java Virtual Machine which actually executes Java programs.

java.runtime.version is a product version along with build identifier of JRE.