从 Java 10 开始,Oracle 调整了基于时间的版本字符串方案(JEP 322)。 新的基于时间的模型已取代了过去基于特性的多年发布模型。 与旧版本不同,新的基于时间的版本不会延迟,并且特性将每六个月发布一次,而对于该版本中可以发布的特性没有任何限制。
更新版本将在每个季度(1 月,4 月,7 月,10 月)发布。 更新版本将严格限于安全性问题,回归和较新特性中的错误的修复。 按照进度计划,可以说每个特性版本在下一个特性版本发布之前都会收到两个更新。
Java 版本格式
如果在逗号和提示/终端中运行命令java -version
,您将获得以下输出版本信息:
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)
版本号的新格式为:
$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()
可用于以编程方式获取版本计数器值。 例如
Version version = Runtime.version();
version.feature();
version.interim();
version.update();
version.patch();
Output:
10
0
1
0
解析现有版本
Version version = Runtime.Version.parse("10.0.1");
version.feature();
version.interim();
version.update();
version.patch();
长期发行(LTS)
它主要针对企业客户。 LTS 版本的产品将提供 Oracle 的首要和持续的支持,目标是每三年一次。 此外,这些版本的更新将至少提供三年。
这将导致“LTS”在java –versions
的输出中突出显示。 例如11.0.2+13-LTS
学习愉快!