Java9 新版本字符串方案
Java版本字符串是一种包含版本特定信息的格式。此版本字符串包括主要版本,次要版本,安全版本和补丁更新版本。
在Java 9中,引入了一个新的版本字符串方案,如下所示。
$MAJOR.$MINOR.$SECURITY.$PATCH
$ 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类签名
public static final class Runtime.Version extends Object implements Comparable<Runtime.Version>
Java Runtime.Version类方法
修饰符和类型 |
方法 |
说明 |
Optional<Integer> |
build() |
它返回内部版本号。 |
int |
compareTo(Runtime.Version obj) |
它将此版本与另一个版本进行比较。 |
int |
compareToIgnoreOptional(Runtime.Version obj) |
它将此版本与另一个版本(不考虑可选的构建信息)进行比较。 |
boolean |
equals(Object obj) |
它确定此版本是否等于另一个对象。 |
boolean |
equalsIgnoreOptional(Object obj) |
它确定此版本是否等于另一个版本,而忽略可选的构建信息。 |
int |
hashCode() |
它返回该版本的哈希码。 |
int |
major() |
它返回主要版本号。 |
int |
major() |
它返回次要版本号,如果未设置,则返回零。 |
Optional<String> |
optional() |
它返回可选的其他标识构建信息。 |
static Runtime.Version |
parse(String s) |
它将给定的字符串解析为一个有效的版本字符串,其中包含版本号,后跟预发行版本和内部版本信息。 |
Optional<String> |
pre() |
它返回可选的预发行信息。 |
int |
security() |
它返回安全版本号,如果未设置,则返回零。 |
String |
toString() |
它返回此版本的字符串表示形式。 |
List<Integer> |
version() |
它返回版本号中包含的不可修改的整数列表。 |
Java Runtime.Version示例
public class VersionInfoExample {
public static void main(String[] args) {
Runtime.Version version = Runtime.version(); // Getting runtime version instance
System.out.println("Current version is "+version); // Getting current Java version
System.out.println("Major version number "+version.major()); // Getting major version number
System.out.println("Minor version number "+version.minor()); // Getting minor version number
System.out.println("Security version number "+version.security()); // Getting security version number
System.out.println("Pre-released information "+version.pre()); // Getting pre-release version information
System.out.println("Build Number "+version.build()); // Getting Optional build number
}
}
输出:
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]