Spec-Zone.ru › OpenJDK 27

Класс 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. Строка версии состоит из номера версии, за которым могут следовать сведения о предварительном выпуске и сборке.

Номера версий

Номер версии, $VNUM, — это непустая последовательность элементов, разделённых точками (U+002E). Элементом может быть ноль или беззнаковое целое число без ведущих нулей. Последний элемент номера версии не должен быть нулём. При увеличении элемента все последующие элементы удаляются. Формат:

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

Последовательность может иметь произвольную длину, но первым четырём элементам присвоены следующие значения:

$FEATURE.$INTERIM.$UPDATE.$PATCH
  • $FEATURE — Счётчик выпусков функциональных возможностей, увеличиваемый при каждом выпуске функциональных возможностей независимо от его содержимого. В таком выпуске могут добавляться новые возможности; их также можно удалять, если об этом было объявлено не менее чем за один выпуск функциональных возможностей. При наличии обоснования могут вноситься несовместимые изменения.

  • $INTERIM — Счётчик промежуточных выпусков, увеличиваемый при выпусках, не содержащих новых функциональных возможностей, но включающих совместимые исправления ошибок и усовершенствования, без несовместимых изменений, удаления функциональных возможностей и изменений стандартных API.

  • $UPDATE — Счётчик выпусков обновлений, увеличиваемый при совместимых выпусках обновлений, устраняющих проблемы безопасности, регрессии и ошибки в новых функциональных возможностях.

  • $PATCH — Счётчик экстренных исправлений, увеличиваемый только при необходимости выпустить экстренное обновление для устранения критической проблемы.

Пятый и последующие элементы номера версии могут использоваться разработчиками платформы для обозначения выпусков исправлений, специфичных для конкретной реализации.

Номер версии никогда не заканчивается нулевыми элементами. Если значение элемента и всех следующих за ним элементов логически равно нулю, все они опускаются.

Последовательность чисел в номере версии сравнивается с другой такой последовательностью поэлементно и численно; например, 10.0.4 меньше 10.1.2. Если одна последовательность короче другой, отсутствующие элементы короткой последовательности считаются меньшими соответствующих элементов длинной последовательности; например, 10.0.2 меньше 10.0.2.1.

Строки версий

Строка версии, $VSTR, — это номер версии $VNUM, как описано выше, за которым могут следовать сведения о предварительном выпуске и сборке в одном из следующих форматов:

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

где:

  • $PRE, соответствует ([a-zA-Z0-9]+) — идентификатор предварительного выпуска. Обычно это ea для потенциально нестабильного раннего выпуска, находящегося в активной разработке, или internal для внутренней сборки разработчиков.

  • $BUILD, соответствует (0|[1-9][0-9]*) — номер сборки, увеличиваемый для каждой сборки, переданной на следующий этап. $BUILD сбрасывается в 1 при увеличении любой части $VNUM.

  • $OPT, соответствует ([-a-zA-Z0-9.]+) — дополнительные сведения о сборке, если они необходимы. В случае сборки internal здесь часто указываются дата и время сборки.

Строка версии 10-ea соответствует $VNUM = "10" и $PRE = "ea". Строка версии 10+-ea соответствует $VNUM = "10" и $OPT = "ea".

При сравнении двух строк версий значение $OPT, если оно присутствует, может учитываться или не учитываться в зависимости от выбранного метода сравнения. Методы сравнения compareTo() и compareToIgnoreOptional() следует использовать согласованно с соответствующими методами equals() и equalsIgnoreOptional().

Краткая строка версии, $SVSTR, часто полезная в менее формальных контекстах, — это номер версии, за которым может следовать идентификатор предварительного выпуска:

    $VNUM(-$PRE)?

Это класс на основе значения; программистам следует считать экземпляры, которые равны, взаимозаменяемыми и не использовать экземпляры для синхронизации, иначе возможно непредсказуемое поведение. Например, в будущем выпуске синхронизация может завершиться неудачей.

Начиная с версии:
9

Краткое описание методов

Модификатор и тип Метод Описание
Optional<Integer> build()
Возвращает номер сборки.
int compareTo(Runtime.Version obj)
Сравнивает эту версию с другой.
int compareToIgnoreOptional(Runtime.Version obj)
Сравнивает эту версию с другой, не учитывая дополнительные сведения о сборке.
boolean equals(Object obj)
Определяет, равен ли этот Version другому объекту.
boolean equalsIgnoreOptional(Object obj)
Определяет, равен ли этот Version другому, не учитывая дополнительные сведения о сборке.
int feature()
Возвращает значение элемента функционального выпуска номера версии.
int hashCode()
Возвращает хеш-код этой версии.
int interim()
Возвращает значение элемента промежуточного выпуска номера версии или ноль, если он отсутствует.
int major()
Устарело.
Начиная с Java SE 10 первый элемент номера версии обозначает не номер основного выпуска, а счётчик выпусков функциональных возможностей, увеличиваемый при каждом выпуске по расписанию.
int minor()
Устарело.
Начиная с Java SE 10 второй элемент номера версии обозначает не номер промежуточного выпуска, а счётчик промежуточных выпусков, увеличиваемый при каждом промежуточном выпуске.
Optional<String> optional()
Возвращает дополнительные сведения для идентификации сборки.
static Runtime.Version parse(String s)
Разбирает заданную строку как допустимую строку версии, содержащую номер версии, за которым следуют сведения о предварительном выпуске и сборке.
int patch()
Возвращает значение элемента исправления номера версии или ноль, если он отсутствует.
Optional<String> pre()
Возвращает дополнительные сведения о предварительном выпуске.
int security()
Устарело.
Начиная с Java SE 10 третий элемент номера версии обозначает не уровень безопасности, а счётчик выпусков обновлений, увеличиваемый при каждом выпуске обновления.
String toString()
Возвращает строковое представление этой версии.
int update()
Возвращает значение элемента обновления номера версии или ноль, если он отсутствует.
List<Integer> version()
Возвращает неизменяемый List целых чисел, представленных в номере версии.

Методы, объявленные в классе Object

clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
protected void finalize()
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Финализация признана устаревшей и подлежит удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством уведомления или прерывания.
final void wait(long timeoutMillis)
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени.

Подробное описание методов

parse

public static Runtime.Version parse(String s)
Разбирает заданную строку как допустимую строку версии, содержащую номер версии, за которым следуют сведения о предварительном выпуске и сборке.
Параметры:
s — строка, интерпретируемая как версия
Возвращает:
Версию, заданную строкой
Исключения:
IllegalArgumentException — если заданную строку невозможно интерпретировать как допустимую версию
NullPointerException — если заданная строка имеет значение null
NumberFormatException — если элемент номера версии или номер сборки невозможно представить как Integer

feature

public int feature()
Возвращает значение элемента функционального выпуска номера версии.
Возвращает:
Значение элемента функционального выпуска
Начиная с версии:
10

interim

public int interim()
Возвращает значение элемента промежуточного выпуска номера версии или ноль, если он отсутствует.
Возвращает:
Значение элемента промежуточного выпуска или ноль
Начиная с версии:
10

update

public int update()
Возвращает значение элемента обновления номера версии или ноль, если он отсутствует.
Возвращает:
Значение элемента обновления или ноль
Начиная с версии:
10

patch

public int patch()
Возвращает значение элемента исправления номера версии или ноль, если он отсутствует.
Возвращает:
Значение элемента исправления или ноль
Начиная с версии:
10

major

@Deprecated(since="10") public int major()
Устарело.
Начиная с Java SE 10 первый элемент номера версии обозначает не номер основного выпуска, а счётчик выпусков функциональных возможностей, увеличиваемый при каждом выпуске по расписанию. Вместо этого метода предпочтительно использовать метод feature(). Для обеспечения совместимости этот метод возвращает значение элемента функционального выпуска.
Возвращает значение основного элемента номера версии.
Возвращает:
Значение элемента функционального выпуска

minor

@Deprecated(since="10") public int minor()
Устарело.
Начиная с Java SE 10 второй элемент номера версии обозначает не номер промежуточного выпуска, а счётчик промежуточных выпусков, увеличиваемый при каждом промежуточном выпуске. Вместо этого метода предпочтительно использовать метод interim(). Для обеспечения совместимости этот метод возвращает значение элемента промежуточного выпуска или ноль, если он отсутствует.
Возвращает значение младшего элемента номера версии или ноль, если он отсутствует.
Возвращает:
Значение элемента промежуточного выпуска или ноль

security

@Deprecated(since="10") public int security()
Устарело.
Начиная с Java SE 10 третий элемент номера версии обозначает не уровень безопасности, а счётчик выпусков обновлений, увеличиваемый при каждом выпуске обновления. Вместо этого метода предпочтительно использовать метод update(). Для обеспечения совместимости этот метод возвращает значение элемента обновления или ноль, если он отсутствует.
Возвращает значение элемента безопасности номера версии или ноль, если он отсутствует.
Возвращает:
Значение элемента обновления или ноль

version

public List<Integer> version()
Возвращает неизменяемый List целых чисел, представленных в номере версии. List всегда содержит как минимум один элемент, соответствующий номеру версии функционального выпуска.
Возвращает:
Неизменяемый список целых чисел, представленных в номере версии

pre

public Optional<String> pre()
Возвращает дополнительные сведения о предварительном выпуске.
Возвращает:
Дополнительные сведения о предварительном выпуске в виде String

build

public Optional<Integer> build()
Возвращает номер сборки.
Возвращает:
Дополнительный номер сборки.

optional

public Optional<String> optional()
Возвращает дополнительные сведения для идентификации сборки.
Возвращает:
Дополнительные сведения о сборке в виде String

compareTo

public int compareTo(Runtime.Version obj)
Сравнивает эту версию с другой.

Компоненты версии сравниваются в следующем порядке приоритета: номера версий, идентификаторы предварительного выпуска, номера сборок, дополнительные сведения о сборке.

Сравнение начинается с анализа последовательностей номеров версий. Если одна последовательность короче другой, отсутствующие элементы короткой последовательности считаются меньшими соответствующих элементов длинной последовательности.

Версия с идентификатором предварительного выпуска всегда считается меньше версии без такого идентификатора. Идентификаторы предварительного выпуска сравниваются численно, если состоят только из цифр, и лексикографически в противном случае. Числовые идентификаторы считаются меньшими нечисловых.

Версия без номера сборки всегда меньше версии с номером сборки; в противном случае номера сборок сравниваются численно.

Дополнительные сведения о сборке сравниваются лексикографически. При этом сравнении версия с дополнительными сведениями о сборке считается большей версии без них.

Определено в:
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 другому объекту.

Два Versions равны тогда и только тогда, когда они представляют одну и ту же строку версии.

Переопределяет:
equals в классе Object
Параметры:
obj — объект, с которым сравнивается этот Version
Возвращает:
true тогда и только тогда, когда заданный объект является Version, идентичным этому Version
См. также:
  • Object.hashCode()
  • HashMap

equalsIgnoreOptional

public boolean equalsIgnoreOptional(Object obj)
Определяет, равен ли этот Version другому, не учитывая дополнительные сведения о сборке.

Два Versions равны тогда и только тогда, когда они представляют одну и ту же строку версии без учёта дополнительных сведений о сборке.

Параметры:
obj — объект, с которым сравнивается этот Version
Возвращает:
true тогда и только тогда, когда заданный объект является Version, идентичным этому Version без учёта дополнительных сведений о сборке

hashCode

public int hashCode()
Возвращает хеш-код этой версии.
Переопределяет:
hashCode в классе Object
Возвращает:
Хеш-код этой версии
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(Object)

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API