模块 java.base
 java.lang

类 Runtime.Version

java.lang.Object
java.lang.Runtime.Version
所有已实现的接口:
Comparable<Runtime.Version>
封闭类:
Runtime

public static final class Runtime.Version extends Object implements Comparable <Runtime.Version >
Java SE 平台实现的版本字符串的表示。版本字符串由版本号组成,可选地后跟预发布和构建信息。

版本号

version number$VNUM 是由句点字符 (U+002E) 分隔的非空元素序列。元素可以是零,也可以是不带前导零的无符号整数。版本号中的最后一个元素不能为零。当一个元素递增时,所有后续元素都会被删除。格式为:

 [1-9][0-9]*((\.0)*\.[1-9][0-9]*)*
 

该序列可以是任意长度,但前四个元素被赋予了特定的含义,如下所示:

 $FEATURE.$INTERIM.$UPDATE.$PATCH
 
  • $FEATURE — 功能发布计数器,无论发布内容如何,都会针对每个功能发布递增。可以在功能发布中添加功能;如果提前通知至少一个功能版本,它们也可能被删除。在合理的情况下可以进行不兼容的更改。

  • $INTERIM — 临时版本计数器,对于包含兼容的错误修复和增强功能但没有不兼容的更改、没有功能删除以及没有对标准 API 进行更改的非功能版本递增。

  • $UPDATE — 更新发布计数器,随着兼容更新版本的增加而增加,这些更新版本修复了新功能中的安全问题、回归和错误。

  • $PATCH — 紧急补丁发布计数器,仅在需要生成紧急版本以解决关键问题时才增加。

版本号的第五个和后面的元素供平台实现者免费使用,以标识特定于实现者的补丁版本。

版本号永远不会有尾随零元素。如果一个元素及其后面的所有元素在逻辑上都具有零值,则所有元素都将被忽略。

版本号中的数字序列与另一个类似的数字序列进行逐点比较; e.g. , 10.0.4 小于 10.1.2 。如果一个序列比另一个短,则认为较短序列的缺失元素少于较长序列的相应元素; e.g. , 10.0.2 小于 10.0.2.1

版本字符串

version string$VSTR 是版本号 $VNUM ,如上所述,可选地后跟预发布和构建信息,采用以下格式之一:

   $VNUM(-$PRE)?\+$BUILD(-$OPT)?
   $VNUM-$PRE(-$OPT)?
   $VNUM(\+-$OPT)?
 

在哪里:

  • $PRE ,匹配 ([a-zA-Z0-9]+) — 预发布标识符。通常 ea ,用于在积极开发中可能不稳定的早期访问版本,或 internal ,用于内部开发人员构建。

  • $BUILD ,匹配 (0|[1-9][0-9]*) — 版本号,为每个提升的版本递增。当 $VNUM 的任何部分递增时,$BUILD 将重置为 1

  • $OPT ,匹配 ([-a-zA-Z0-9.]+) - 额外的构建信息,如果需要的话。在 internal 构建的情况下,这通常包含构建的日期和时间。

版本字符串 10-ea 匹配 $VNUM = "10"$PRE = "ea"。版本字符串 10+-ea$VNUM = "10"$OPT = "ea" 匹配。

比较两个版本字符串时, $OPT 的值(如果存在)可能重要也可能不重要,具体取决于所选择的比较方法。比较方法 compareTo() compareToIgnoreOptional() 应与相应的方法 equals() equalsIgnoreOptional() 一致使用。

一个 short version string$SVSTR ,通常在不太正式的上下文中很有用,是一个版本号,可以选择后跟一个预发布标识符:

   $VNUM(-$PRE)?
 

这是一个value-based类;程序员应该将 equal 的实例视为可互换的,并且不应使用实例进行同步,否则可能会发生不可预测的行为。例如,在未来的版本中,同步可能会失败。

自从:
9
  • 方法详情

    • parse

      public static Runtime.Version  parse(String  s)
      将给定的字符串解析为有效的 版本字符串,其中包含一个 版本号,后跟预发布和构建信息。
      参数:
      s - 解释为版本的字符串
      返回:
      给定字符串的版本
      抛出:
      IllegalArgumentException - 如果给定的字符串不能解释为有效版本
      NullPointerException - 如果给定的字符串是 null
      NumberFormatException - 如果版本号或构建号的元素不能表示为 Integer
    • feature

      public int feature()
      返回版本号的 feature 元素的值。
      返回:
      特征元素的值
      自从:
      10
    • interim

      public int interim()
      返回版本号的 interim 元素的值,如果不存在则返回零。
      返回:
      临时元素的值,或零
      自从:
      10
    • update

      public int update()
      返回版本号的 update 元素的值,如果不存在则返回零。
      返回:
      更新元素的值,或零
      自从:
      10
    • patch

      public int patch()
      返回版本号的 patch 元素的值,如果不存在则返回零。
      返回:
      补丁元素的值,或零
      自从:
      10
    • major

      @Deprecated (since ="10") public int major()
      已弃用。
      从 Java SE 10 开始,版本号的第一个元素不是主版本号,而是功能版本计数器,每个基于时间的版本都会递增。优先使用 feature() 方法而不是此方法。为了兼容性,此方法返回 feature 元素的值。
      返回版本号的主要元素的值。
      返回:
      特征元素的值
    • minor

      @Deprecated (since ="10") public int minor()
      已弃用。
      从 Java SE 10 开始,版本号的第二个元素不是次要版本号,而是临时版本计数器,每个临时版本都会递增。优先使用 interim() 方法而不是此方法。为了兼容性,此方法返回 interim 元素的值,如果不存在则返回零。
      返回版本号的次要元素的值,如果不存在则返回零。
      返回:
      临时元素的值,或零
    • security

      @Deprecated (since ="10") public int security()
      已弃用。
      从 Java SE 10 开始,版本号的第三个元素不是安全级别,而是更新发布计数器,每次更新发布都会递增。优先使用 update() 方法而不是此方法。为了兼容性,此方法返回 update 元素的值,如果不存在则返回零。
      返回版本号的安全元素的值,如果不存在则返回零。
      返回:
      更新元素的值,或零
    • version

      public List <Integer > version()
      返回 版本号 中表示的整数的不可修改的 List List 始终包含至少一个对应于 功能版本号 的元素。
      返回:
      版本号中表示的不可修改的整数列表
    • pre

      public Optional <String > pre()
      返回可选的 预发布 信息。
      返回:
      字符串形式的可选预发布信息
    • build

      public Optional <Integer > build()
      返回 版本号
      返回:
      可选的内部版本号。
    • optional

      public Optional <String > optional()
      返回 optional 附加标识构建信息。
      返回:
      作为字符串的附加构建信息
    • compareTo

      public int compareTo(Runtime.Version  obj)
      将此版本与另一个版本进行比较。

      version 中的每个组件都按以下优先顺序进行比较:版本号、预发布标识符、构建号、可选构建信息。

      比较从检查版本号的顺序开始。如果一个序列比另一个短,则认为较短序列的缺失元素少于较长序列的相应元素。

      具有预发布标识符的版本始终被认为低于没有预发布标识符的版本。预发布标识符仅由数字组成时按数字进行比较,否则按字典顺序进行比较。数字标识符被认为小于非数字标识符。

      没有内部版本号的版本总是小于有内部版本号的版本;否则内部版本号将进行数字比较。

      可选的构建信息按字典顺序进行比较。在此比较期间,具有可选构建信息的版本被认为比没有构建信息的版本更高。

      指定者:
      compareTo 在接口 Comparable<Runtime.Version>
      参数:
      obj - 要比较的对象
      返回:
      如果此 Version 小于、等于或大于给定的 Version,则为负整数、零或正整数
      抛出:
      NullPointerException - 如果给定对象是 null
    • compareToIgnoreOptional

      public int compareToIgnoreOptional(Runtime.Version  obj)
      将此版本与另一个忽略可选构建信息的版本进行比较。

      通过检查版本字符串来比较两个版本,如 compareTo(Version) 中所述,但始终忽略可选的构建信息。

      此方法提供与 equalsIgnoreOptional() 一致的排序。

      参数:
      obj - 要比较的对象
      返回:
      如果此 Version 小于、等于或大于给定的 Version,则为负整数、零或正整数
      抛出:
      NullPointerException - 如果给定对象是 null
    • toString

      public String  toString()
      返回此版本的字符串表示形式。
      重写:
      toString 在类 Object
      返回:
      版本字符串
    • equals

      public boolean equals(Object  obj)
      确定此 Version 是否等于另一个对象。

      当且仅当它们表示相同的版本字符串时,两个 Version 才相等。

      重写:
      equals 在类 Object
      参数:
      obj - 与此 Version 进行比较的对象
      返回:
      true 当且仅当给定对象是与此 Version 相同的 Version
      参见:
    • equalsIgnoreOptional

      public boolean equalsIgnoreOptional(Object  obj)
      确定此 Version 是否等于另一个忽略可选构建信息。

      两个 Version 是相等的当且仅当它们表示相同的版本字符串而忽略可选的构建信息。

      参数:
      obj - 与此 Version 进行比较的对象
      返回:
      true 当且仅当给定对象是一个 Version 与此 Version 相同,忽略可选构建信息
    • hashCode

      public int hashCode()
      返回此版本的哈希码。
      重写:
      hashCode 在类 Object
      返回:
      这个版本的哈希码
      参见: