Java のバージョン文字列の不思議

Version-String Format

バージョン番号の形式については決まり事ができたみたいなのですが。

手元に残っていた OpenJDK 10 には謎の数値 18.3 が含まれており、どこから来たのか不思議です。

$ java10 -version
openjdk version "10.0.2" 2018-07-17
OpenJDK Runtime Environment 18.3 (build 10.0.2+13)
OpenJDK 64-Bit Server VM 18.3 (build 10.0.2+13, mixed mode)
$ jshell10
jshell> System.getProperty("java.runtime.version")
$1 ==> "10.0.2+13"

jshell> System.getProperty("java.vm.version")
$2 ==> "10.0.2+13"

$ java17 -version
openjdk version "17.0.1" 2021-10-19 LTS
OpenJDK Runtime Environment (build 17.0.1+12-LTS)
OpenJDK 64-Bit Server VM (build 17.0.1+12-LTS, mixed mode, sharing)
$ jshell17
jshell> System.getProperty("java.runtime.version")
$1 ==> "17.0.1+12-LTS"

jshell> System.getProperty("java.vm.version")
$2 ==> "17.0.1+12-LTS"