原文: https://howtodoinjava.com/java10/java-version/

从 Java 10 开始,Oracle 调整了基于时间的版本字符串方案(JEP 322)。 新的基于时间的模型已取代了过去基于特性的多年发布模型。 与旧版本不同,新的基于时间的版本不会延迟,并且特性将每六个月发布一次,而对于该版本中可以发布的特性没有任何限制。

更新版本将在每个季度(1 月,4 月,7 月,10 月)发布。 更新版本将严格限于安全性问题,回归和较新特性中的错误的修复。 按照进度计划,可以说每个特性版本在下一个特性版本发布之前都会收到两个更新。

Java 版本格式

如果在逗号和提示/终端中运行命令java -version,您将获得以下输出版本信息:

  1. C:\Users\Lokesh>java -version
  2. java version "10.0.1" 2018-04-17
  3. Java(TM) SE Runtime Environment 18.3 (build 10.0.1+10)
  4. Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.1+10, mixed mode)

版本号的新格式为:

$FEATURE.$INTERIM.$UPDATE.$PATCH

名称 描述
$FEATURE 它会每 6 个月增加一次,具体取决于特性发布版本,例如:JDK 10,JDK11。(以前为$MAJOR。)
$INTERIM 通常为零,因为六个月内不会有任何中期发布。 对于包含兼容的错误修复和增强特性但不兼容的更改,不删除的特性以及对标准 API 的更改的非特性版本,它将增加。 (以前为$MINOR。)
$UPDATE 对于解决安全问题,回归和较新特性中的错误的兼容更新版本,它将递增。 (以前为$SECURITY。)
$PATCH 仅在需要紧急发布以解决关键问题时才会增加。

版本号中的数字序列与其他此类序列以数字逐点方式进行比较; 例如10.0.4小于10.1.2。 如果一个序列比另一个序列短,则认为较短序列的缺失元素少于较长序列的对应元素; 例如10.0.2小于10.0.2.1

Java 版本 API

Runtime.version()可用于以编程方式获取版本计数器值。 例如

  1. Version version = Runtime.version();
  2. version.feature();
  3. version.interim();
  4. version.update();
  5. version.patch();
  6. Output:
  7. 10
  8. 0
  9. 1
  10. 0

解析现有版本

  1. Version version = Runtime.Version.parse("10.0.1");
  2. version.feature();
  3. version.interim();
  4. version.update();
  5. version.patch();

长期发行(LTS)

它主要针对企业客户。 LTS 版本的产品将提供 Oracle 的首要和持续的支持,目标是每三年一次。 此外,这些版本的更新将至少提供三年。

这将导致“LTS”在java –versions的输出中突出显示。 例如11.0.2+13-LTS

学习愉快!

参考: http://openjdk.java.net/jeps/322