Java 9 新版本字符串方案

2024 年 8 月 29 日 | 阅读 3 分钟

Java 版本字符串是一种包含版本特定信息的格式。此版本字符串由主版本、次版本、安全更新和补丁更新组成。

在 Java 9 中,引入了一个新的版本字符串方案,如下所示。

$MAJOR

此版本号显示 Java 版本的主要变化。当发生重大变化时,它会增加。例如 Java 8 到 Java 9。每个主要版本都包含对现有版本的新功能。

$MINOR

此版本号显示 Java 版本的次要更改,并且随着每次次要更新而增加。这些更新可以是错误修复、对标准 API 的修订等。如果向 Java 9 发布更新,则版本字符串格式将为 Java 9.1(包含主版本和次版本号)。

$SECURITY

此版本号表示安全更新,并为每个新的安全更新增加。安全更新可以是关键修复程序和安全问题。如果向 Java 9 发布任何安全更新,版本字符串格式将类似于:Java 9.1.5(包含主版本、次版本和安全版本号)。

$PATCH

此版本号随着每个安全和高优先级客户修复程序(已一起测试)而增加。如果向 Java 9 发布补丁,则版本字符串格式将为 Java 9.1.5.1(包含主版本、次版本、安全版本和补丁版本号)。

注意:每次 $SECURITY、$MINOR 或 $MAJOR 版本号递增时,$PATCH 版本号都会重置为零。

如果 $MAJOR 版本号递增,则 $MINOR 和 $SECURITY 版本号将设置为零。但是,当 $MINOR 版本号递增时,后续的 $SECURITY 版本号不必设置为零。

在 Java 9 中,添加了一个 Runtime.Version 类来获取 Java 版本信息。此类包含方法,并具有以下签名。

Java Runtime.Version 类签名

Java Runtime.Version 类方法

修饰符和类型方法描述
Optional<Integer>build()它返回构建编号。
intcompareTo(Runtime.Version obj)它将此版本与另一个版本进行比较。
intcompareToIgnoreOptional(Runtime.Version obj)它将此版本与另一个版本进行比较,忽略可选的构建信息。
booleanequals(Object obj)它确定此版本是否等于另一个对象。
booleanequalsIgnoreOptional(Object obj)它确定此版本是否等于另一个版本,忽略可选的构建信息。
inthashCode()它返回此版本的哈希码。
intmajor()它返回主版本号。
intmajor()它返回次版本号,如果未设置,则返回零。
Optional<String>optional()它返回可选的附加标识构建信息。
static Runtime.Versionparse(String s)它将给定的字符串解析为有效的版本字符串,该字符串包含版本号,后跟预发布和构建信息。
Optional<String>pre()它返回可选的预发布信息。
intsecurity()它返回安全版本号,如果未设置,则返回零。
StringtoString()它返回此版本的字符串表示形式。
List<Integer>version()它返回版本号中包含的整数数值的不可修改列表。

Java Runtime.Version 示例

输出

Current version is 9.0.1+11
Major version number 9
Minor version number 0
Security version number 1
Pre-released information Optional.empty
Build Number Optional[11]