Spec-Zone.ru › OpenJDK 27

Класс System

java.lang.Object
java.lang.System
public final class System extends Object
Класс System содержит несколько полезных полей и методов класса. Его нельзя инстанцировать. Среди возможностей, предоставляемых классом System, — стандартные потоки ввода, вывода и вывода ошибок; доступ к внешним свойствам и переменным среды; средства загрузки файлов и библиотек; а также вспомогательный метод для быстрого копирования части массива.
Начиная с:
1.0

Краткое описание вложенных классов

Модификатор и тип Класс Описание
static interface  System.Logger
Экземпляры System.Logger записывают сообщения, которые передаются используемой LoggerFinder базовой платформе ведения журналов.
static class  System.LoggerFinder
Служба LoggerFinder отвечает за создание, управление и настройку регистраторов для используемой ею базовой платформы.

Краткое описание полей

Модификатор и тип Поле Описание
static final PrintStream err
«Стандартный» поток вывода ошибок.
static final InputStream in
«Стандартный» поток ввода.
static final PrintStream out
«Стандартный» поток вывода.

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

Модификатор и тип Метод Описание
static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
Копирует массив из указанного исходного массива, начиная с указанной позиции, в указанную позицию массива назначения.
static String clearProperty(String key)
Удаляет системное свойство, указанное заданным ключом.
static Console console()
Возвращает уникальный объект Console, связанный с текущей виртуальной машиной Java, если такой объект существует.
static long currentTimeMillis()
Возвращает текущее время в миллисекундах.
static void exit(int status)
Запускает последовательность завершения работы виртуальной машины Java.
static void gc()
Запускает сборщик мусора в виртуальной машине Java.
static Map<String,String> getenv()
Возвращает немодифицируемое представление текущей среды системы в виде карты строк.
static String getenv(String name)
Получает значение указанной переменной среды.
static System.Logger getLogger(String name)
Возвращает экземпляр Logger для использования вызывающим кодом.
static System.Logger getLogger(String name, ResourceBundle bundle)
Возвращает локализуемый экземпляр Logger для использования вызывающим кодом.
static Properties getProperties()
Определяет текущие системные свойства.
static String getProperty(String key)
Получает системное свойство, указанное заданным ключом.
static String getProperty(String key, String def)
Получает системное свойство, указанное заданным ключом.
static SecurityManager getSecurityManager()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Изначально этот метод возвращал общесистемный менеджер безопасности.
static int identityHashCode(Object x)
Возвращает для заданного объекта тот же хеш-код, который вернул бы метод hashCode() по умолчанию, независимо от того, переопределяет ли класс заданного объекта метод hashCode().
static Channel inheritedChannel()
Возвращает канал, унаследованный от объекта, создавшего эту виртуальную машину Java.
static String lineSeparator()
Возвращает системно-зависимую строку-разделитель строк.
static void load(String filename)
Ограниченный доступ.
Загружает собственную библиотеку, указанную аргументом filename.
static void loadLibrary(String libname)
Ограниченный доступ.
Загружает собственную библиотеку, указанную аргументом libname.
static String mapLibraryName(String libname)
Преобразует имя библиотеки в строку, зависящую от платформы и представляющую собственную библиотеку.
static long nanoTime()
Возвращает текущее значение источника времени с высоким разрешением работающей виртуальной машины Java в наносекундах.
static void runFinalization()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Финализация признана устаревшей и будет удалена.
static void setErr(PrintStream err)
Переназначает «стандартный» поток вывода ошибок.
static void setIn(InputStream in)
Переназначает «стандартный» поток ввода.
static void setOut(PrintStream out)
Переназначает «стандартный» поток вывода.
static void setProperties(Properties props)
Задаёт системные свойства, используя аргумент Properties.
static String setProperty(String key, String value)
Задаёт системное свойство, указанное заданным ключом.
static void setSecurityManager(SecurityManager sm)
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Изначально этот метод задавал общесистемный менеджер безопасности.

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

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

Подробное описание полей

in

public static final InputStream in
«Стандартный» поток ввода. Этот поток уже открыт и готов предоставлять входные данные. Он соответствует вводу с клавиатуры или другому источнику ввода, заданному средой узла или пользователем. Приложениям следует использовать кодировку, указанную в свойстве stdin.encoding, для преобразования входных байтов в символьные данные.
Примечание API:
Обычно для чтения символьных данных System.in оборачивают в объект, который выполняет обработку кодировки символов. После этого для дальнейшего чтения следует использовать только объект-обёртку; продолжение непосредственной работы с System.in приводит к неопределённому поведению.

Вот два распространённых примера. Использование InputStreamReader:

    new InputStreamReader(System.in, System.getProperty("stdin.encoding"));
Или использование Scanner:
    new Scanner(System.in, System.getProperty("stdin.encoding"));

Для обработки интерактивного ввода рассмотрите возможность использования Console.

См. также:
  • Console
  • stdin.encoding

out

public static final PrintStream out
«Стандартный» поток вывода. Этот поток уже открыт и готов принимать выходные данные. Обычно он соответствует выводу на экран или другому месту назначения, заданному средой узла или пользователем. Кодировка, используемая при преобразовании символов в байты, эквивалентна stdout.encoding.

Для простых автономных приложений Java обычно используют следующий способ вывода строки данных:

    System.out.println(data)

См. методы println класса PrintStream.

См. также:
  • PrintStream.println()
  • PrintStream.println(boolean)
  • PrintStream.println(char)
  • PrintStream.println(char[])
  • PrintStream.println(double)
  • PrintStream.println(float)
  • PrintStream.println(int)
  • PrintStream.println(long)
  • PrintStream.println(java.lang.Object)
  • PrintStream.println(java.lang.String)
  • stdout.encoding

err

public static final PrintStream err
«Стандартный» поток вывода ошибок. Этот поток уже открыт и готов принимать выходные данные.

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

См. также:
  • stderr.encoding

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

setIn

public static void setIn(InputStream in)
Переназначает «стандартный» поток ввода.
Параметры:
in — новый стандартный поток ввода.
Начиная с версии:
1.1

setOut

public static void setOut(PrintStream out)
Переназначает «стандартный» поток вывода.
Параметры:
out — новый стандартный поток вывода
Начиная с версии:
1.1

setErr

public static void setErr(PrintStream err)
Переназначает «стандартный» поток вывода ошибок.
Параметры:
err — новый стандартный поток вывода ошибок.
Начиная с версии:
1.1

console

public static Console console()
Возвращает единственный объект Console, связанный с текущей виртуальной машиной Java, если таковой имеется.
Возвращает:
Системная консоль, если она есть, иначе null.
Начиная с версии:
1.6
См. также:
  • Console

inheritedChannel

public static Channel inheritedChannel() throws IOException
Возвращает канал, унаследованный от объекта, создавшего эту виртуальную машину Java. Этот метод возвращает канал, полученный вызовом метода inheritedChannel системного объекта SelectorProvider по умолчанию.

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

Возвращает:
Унаследованный канал, если он есть, иначе null.
Вызывает:
IOException — если возникает ошибка ввода-вывода
Начиная с версии:
1.5

setSecurityManager

@Deprecated(since="17", forRemoval=true) public static void setSecurityManager(SecurityManager sm)
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Изначально этот метод устанавливал общесистемный менеджер безопасности. Установка менеджера безопасности больше не поддерживается. Замены менеджеру безопасности или этому методу нет.
Вызывает UnsupportedOperationException. Установка менеджера безопасности не поддерживается.
Параметры:
sm — игнорируется
Вызывает:
UnsupportedOperationException — всегда
См. также:
  • getSecurityManager()

getSecurityManager

@Deprecated(since="17", forRemoval=true) public static SecurityManager getSecurityManager()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Изначально этот метод возвращал общесистемный менеджер безопасности. Установка менеджера безопасности больше не поддерживается. Замены менеджеру безопасности или этому методу нет.
Возвращает null. Установка менеджера безопасности не поддерживается.
Возвращает:
null
См. также:
  • setSecurityManager(SecurityManager)

currentTimeMillis

public static long currentTimeMillis()
Возвращает текущее время в миллисекундах. Обратите внимание: хотя единица измерения возвращаемого значения — миллисекунда, точность зависит от базовой операционной системы и может быть ниже. Например, многие операционные системы измеряют время с шагом в десятки миллисекунд.

Описание класса Date содержит обсуждение небольших расхождений, которые могут возникнуть между «компьютерным временем» и всемирным координированным временем (UTC).

Возвращает:
разницу в миллисекундах между текущим временем и полуночью 1 января 1970 года по UTC.
См. также:
  • Date

nanoTime

public static long nanoTime()
Возвращает текущее значение высокоточного источника времени работающей виртуальной машины Java в наносекундах. Этот метод можно использовать только для измерения прошедшего времени; он не связан с другими понятиями системного времени или времени по часам. Возвращаемое значение представляет собой количество наносекунд с некоторого фиксированного, но произвольного момента времени начала отсчёта (возможно, будущего, поэтому значения могут быть отрицательными). Во всех вызовах этого метода в одном экземпляре виртуальной машины Java используется один и тот же момент начала отсчёта; в других экземплярах виртуальной машины, вероятно, используется другой момент.

Этот метод обеспечивает точность до наносекунд, но не обязательно разрешение в наносекунду (то есть частоту изменения значения) — гарантируется только, что разрешение не хуже, чем у currentTimeMillis().

Разности последовательных вызовов, охватывающие период более примерно 292 лет (263 наносекунд), не позволяют корректно вычислить прошедшее время из-за числового переполнения.

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

Например, чтобы измерить время выполнения некоторого кода:

long startTime = System.nanoTime();
// ... the code being measured ...
long elapsedNanos = System.nanoTime() - startTime;

Для сравнения прошедшего времени с тайм-аутом используйте

if (System.nanoTime() - startTime >= timeoutNanos) ...
вместо
if (System.nanoTime() >= startTime + timeoutNanos) ...
из-за возможного числового переполнения.
Возвращает:
текущее значение высокоточного источника времени работающей виртуальной машины Java в наносекундах
Начиная с версии:
1.5

arraycopy

public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
Копирует массив из указанного исходного массива, начиная с заданной позиции, в указанную позицию массива назначения. Последовательность компонентов массива копируется из исходного массива, на который ссылается src, в массив назначения, на который ссылается dest. Число копируемых компонентов равно аргументу length. Компоненты исходного массива с позиций srcPos по srcPos+length-1 копируются соответственно в позиции destPos по destPos+length-1 массива назначения.

Если аргументы src и dest ссылаются на один и тот же объект массива, копирование выполняется так, как если бы компоненты с позиций srcPos по srcPos+length-1 сначала были скопированы во временный массив из length компонентов, а затем содержимое временного массива было скопировано в позиции destPos по destPos+length-1 массива назначения.

Если dest равно null, выбрасывается NullPointerException.

Если src равно null, выбрасывается NullPointerException, и массив назначения не изменяется.

В противном случае, если выполняется любое из следующих условий, выбрасывается ArrayStoreException, и массив назначения не изменяется:

  • Аргумент src ссылается на объект, который не является массивом.
  • Аргумент dest ссылается на объект, который не является массивом.
  • Аргументы src и dest ссылаются на массивы с компонентами разных примитивных типов.
  • Аргумент src ссылается на массив с компонентами примитивного типа, а аргумент dest — на массив с компонентами ссылочного типа.
  • Аргумент src ссылается на массив с компонентами ссылочного типа, а аргумент dest — на массив с компонентами примитивного типа.

В противном случае, если выполняется любое из следующих условий, выбрасывается IndexOutOfBoundsException, и массив назначения не изменяется:

  • Аргумент srcPos отрицателен.
  • Аргумент destPos отрицателен.
  • Аргумент length отрицателен.
  • srcPos+length больше src.length — длины исходного массива.
  • destPos+length больше dest.length — длины массива назначения.

В противном случае, если какой-либо фактический компонент исходного массива с позиции srcPos по srcPos+length-1 нельзя преобразовать в тип компонента массива назначения посредством преобразования при присваивании, выбрасывается ArrayStoreException. В этом случае пусть k — наименьшее неотрицательное целое число, меньшее длины, для которого src[srcPos+k] нельзя преобразовать в тип компонента массива назначения; при выбрасывании исключения компоненты исходного массива с позиций srcPos по srcPos+k-1 уже будут скопированы в позиции destPos по destPos+k-1 массива назначения, а остальные позиции массива назначения не будут изменены. (С учётом уже перечисленных ограничений этот пункт фактически относится только к ситуации, когда типы компонентов обоих массивов являются ссылочными.)

Параметры:
src — исходный массив.
srcPos — начальная позиция в исходном массиве.
dest — массив назначения.
destPos — начальная позиция в массиве назначения.
length — число копируемых элементов массива.
Вызывает:
IndexOutOfBoundsException — если копирование приведёт к обращению к данным за пределами массива.
ArrayStoreException — если элемент массива src нельзя сохранить в массиве dest из-за несовпадения типов.
NullPointerException — если src или dest равно null.

identityHashCode

public static int identityHashCode(Object x)
Возвращает для указанного объекта тот же хеш-код, который вернул бы метод hashCode() по умолчанию, независимо от того, переопределяет ли класс указанного объекта метод hashCode(). Хеш-код для ссылки null равен нулю.
Параметры:
x — объект, для которого необходимо вычислить hashCode
Возвращает:
хеш-код
Начиная с версии:
1.1
См. также:
  • Object.hashCode()
  • Objects.hashCode(Object)

getProperties

public static Properties getProperties()
Получает текущие системные свойства.

Текущий набор системных свойств, используемый методом getProperty(String), возвращается в виде объекта Properties. Если текущего набора системных свойств нет, сначала создаётся и инициализируется новый набор. Этот набор системных свойств содержит значение для каждого из следующих ключей, если только в описании соответствующего значения не указано, что оно необязательно.

Список ключей свойств и соответствующих значений
Ключ Описание соответствующего значения
java.version Версия среды выполнения Java, которую можно интерпретировать как Runtime.Version
java.version.date Дата версии среды выполнения Java в формате ISO-8601 ГГГГ-ММ-ДД, которую можно интерпретировать как LocalDate
java.vendor Поставщик среды выполнения Java
java.vendor.url URL-адрес поставщика Java
java.vendor.version Версия поставщика Java (необязательно)
java.home Каталог установки Java
java.vm.specification.version Версия спецификации виртуальной машины Java; её значение — элемент feature версии среды выполнения
java.vm.specification.vendor Поставщик спецификации виртуальной машины Java
java.vm.specification.name Название спецификации виртуальной машины Java
java.vm.version Версия реализации виртуальной машины Java, которую можно интерпретировать как Runtime.Version
java.vm.vendor Поставщик реализации виртуальной машины Java
java.vm.name Название реализации виртуальной машины Java
java.specification.version Версия спецификации среды выполнения Java; её значение — элемент feature версии среды выполнения
java.specification.maintenance.version Версия сопровождения спецификации среды выполнения Java; значение можно интерпретировать как положительное целое число (необязательно, см. ниже)
java.specification.vendor Поставщик спецификации среды выполнения Java
java.specification.name Название спецификации среды выполнения Java
java.class.version Последняя версия формата файла класса Java, распознаваемая средой выполнения Java, в виде "MAJOR.MINOR", где MAJOR и MINOR представлены десятичными целыми числами
java.class.path Путь классов Java (подробности см. в ClassLoader.getSystemClassLoader())
java.library.path Список путей для поиска при загрузке библиотек
java.io.tmpdir Путь к каталогу временных файлов по умолчанию
os.name Название операционной системы
os.arch Архитектура операционной системы
os.version Версия операционной системы
file.separator Разделитель файлов («/» в UNIX)
path.separator Разделитель путей («:» в UNIX)
line.separator Разделитель строк ("\n" в UNIX)
user.name Имя учётной записи пользователя
user.home Домашний каталог пользователя
user.dir Текущий рабочий каталог пользователя
native.encoding Название кодировки символов, определяемое средой узла и настройками пользователя. Установка этого системного свойства в командной строке не оказывает влияния.
stdin.encoding Название кодировки символов для System.in. Среду выполнения Java можно запустить, установив системное свойство в значение UTF-8. Запуск со свойством, установленным в другое значение, приводит к неопределённому поведению.
stdout.encoding Название кодировки символов для System.out и System.console(). Среду выполнения Java можно запустить, установив системное свойство в значение UTF-8. Запуск со свойством, установленным в другое значение, приводит к неопределённому поведению.
stderr.encoding Название кодировки символов для System.err. Среду выполнения Java можно запустить, установив системное свойство в значение UTF-8. Запуск со свойством, установленным в другое значение, приводит к неопределённому поведению.

Свойство java.specification.maintenance.version определено, если спецификация, реализованная этой средой выполнения на момент её создания, прошла выпуск обновления сопровождения. Если свойство определено, его значение указывает на этот выпуск. Для первого выпуска обновления сопровождения значение свойства будет "1", для второго — "2" и так далее.

Несколько путей в значении системного свойства разделяются символом-разделителем путей, используемым на платформе.

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

Примечание API:
Изменение стандартного системного свойства может привести к непредсказуемым результатам, если не указано иное. Значения свойств могут кэшироваться во время инициализации или при первом использовании. Установка стандартного свойства после инициализации с помощью getProperties(), setProperties(Properties), setProperty(String, String) или clearProperty(String) может не дать желаемого эффекта.
Примечание по реализации:
Помимо стандартных системных свойств, системные свойства могут включать следующие ключи:
Список ключей свойств и соответствующих значений
Ключ Описание соответствующего значения
jdk.module.path Путь к модулям приложения
jdk.module.upgrade.path Путь к модулям обновления
jdk.module.main Имя модуля начального/главного модуля
jdk.module.main.class Имя главного класса начального модуля
file.encoding Имя кодировки по умолчанию; по умолчанию — UTF-8. В командной строке свойству можно задать значение UTF-8 или COMPAT. Если в командной строке ему задано значение COMPAT, при запуске оно заменяется значением свойства native.encoding. Установка свойства в значение, отличное от UTF-8 или COMPAT, приводит к неопределённому поведению.
Возвращает:
системные свойства
См. также:
  • setProperties(Properties)
  • Properties

lineSeparator

public static String lineSeparator()
Возвращает зависящую от системы строку-разделитель строк. Метод всегда возвращает одно и то же значение — исходное значение системного свойства line.separator.

В системах UNIX возвращается "\n"; в системах Microsoft Windows — "\r\n".

Возвращает:
зависящая от системы строка-разделитель строк
Начиная с версии:
1.7

setProperties

public static void setProperties(Properties props)
Устанавливает системные свойства в значение аргумента Properties.

Аргумент становится текущим набором системных свойств, используемым методом getProperty(String). Если аргумент равен null, текущий набор системных свойств сбрасывается.

Примечание API:
Изменение стандартного системного свойства может привести к непредсказуемым результатам, если не указано иное. Подробности см. в разделе getProperties.
Параметры:
props — новые системные свойства.
См. также:
  • getProperties()
  • Properties

getProperty

public static String getProperty(String key)
Получает системное свойство, указанное заданным ключом.

Если текущего набора системных свойств нет, сначала создаётся и инициализируется набор тем же способом, что и для метода getProperties.

Примечание API:
Изменение стандартного системного свойства может привести к непредсказуемым результатам, если не указано иное. Подробности см. в разделе getProperties.
Параметры:
key — имя системного свойства.
Возвращает:
строковое значение системного свойства или null, если свойства с таким ключом нет.
Вызывает:
NullPointerException — если key равно null.
IllegalArgumentException — если key пусто.
См. также:
  • setProperty(String, String)
  • getProperties()

getProperty

public static String getProperty(String key, String def)
Получает системное свойство, указанное заданным ключом.

Если текущего набора системных свойств нет, сначала создаётся и инициализируется набор тем же способом, что и для метода getProperties.

Параметры:
key — имя системного свойства.
def — значение по умолчанию.
Возвращает:
строковое значение системного свойства или значение по умолчанию, если свойства с таким ключом нет.
Вызывает:
NullPointerException — если key равно null.
IllegalArgumentException — если key пусто.
См. также:
  • setProperty(String, String)
  • getProperties()

setProperty

public static String setProperty(String key, String value)
Устанавливает системное свойство, обозначенное указанным ключом.
Примечание API:
Изменение стандартного системного свойства может привести к непредсказуемым результатам, если не указано иное. Подробности см. в описании getProperties.
Параметры:
key — имя системного свойства.
value — значение системного свойства.
Возвращает:
предыдущее значение системного свойства или null, если оно отсутствовало.
Вызывает:
NullPointerException — если key или value равно null.
IllegalArgumentException — если key пусто.
Начиная с:
1.2
См. также:
  • getProperty(String)
  • getProperty(java.lang.String)
  • getProperty(java.lang.String, java.lang.String)

clearProperty

public static String clearProperty(String key)
Удаляет системное свойство, обозначенное указанным ключом.
Примечание API:
Изменение стандартного системного свойства может привести к непредсказуемым результатам, если не указано иное. Подробности см. в описании метода getProperties.
Параметры:
key — имя системного свойства, которое нужно удалить.
Возвращает:
предыдущее строковое значение системного свойства или null, если свойства с таким ключом не было.
Вызывает:
NullPointerException — если key равно null.
IllegalArgumentException — если key пусто.
Начиная с:
1.5
См. также:
  • getProperty(String)
  • setProperty(String, String)
  • Properties

getenv

public static String getenv(String name)
Возвращает значение указанной переменной среды. Переменная среды — это именованное внешнее значение, зависящее от системы.

Системные свойства и переменные среды концептуально представляют собой соответствия между именами и значениями. Оба механизма можно использовать для передачи определяемой пользователем информации процессу Java. Переменные среды оказывают более глобальное влияние, поскольку они видны всем дочерним процессам процесса, который их определяет, а не только непосредственному дочернему процессу Java. В разных операционных системах их семантика может незначительно отличаться, например, в отношении чувствительности к регистру. По этим причинам переменные среды с большей вероятностью могут вызывать непреднамеренные побочные эффекты. По возможности рекомендуется использовать системные свойства. Переменные среды следует использовать, когда требуется глобальное воздействие или когда этого требует внешний системный интерфейс (например, PATH).

В системах UNIX регистр букв в name обычно имеет значение, тогда как в системах Microsoft Windows — обычно нет. Например, выражение System.getenv("FOO").equals(System.getenv("foo")), вероятно, будет истинным в Microsoft Windows.

Параметры:
name — имя переменной среды
Возвращает:
строковое значение переменной или null, если переменная не определена в системной среде
Вызывает:
NullPointerException — если name равно null
См. также:
  • getenv()
  • ProcessBuilder.environment()

getenv

public static Map<String,String> getenv()
Возвращает неизменяемое представление текущей системной среды в виде строковой карты. Среда — это зависящее от системы соответствие имен значениям, которое передается от родительских процессов дочерним.

Если система не поддерживает переменные среды, возвращается пустая карта.

Возвращаемая карта никогда не содержит ключей или значений null. Попытка проверить наличие ключа или значения null приведет к исключению NullPointerException. Попытка проверить наличие ключа или значения, не относящегося к типу String, приведет к исключению ClassCastException.

Возвращаемая карта и ее представления коллекций могут не соответствовать общему контракту методов Object.equals(Object) и Object.hashCode().

На всех платформах возвращаемая карта обычно чувствительна к регистру.

При передаче информации дочернему процессу Java системные свойства обычно предпочтительнее переменных среды.

Возвращает:
среду в виде карты имен переменных и их значений
Начиная с:
1.5
См. также:
  • getenv(String)
  • ProcessBuilder.environment()

getLogger

public static System.Logger getLogger(String name)
Возвращает экземпляр Logger для использования вызывающим кодом.
Примечание API:
Этот метод может отложить вызов метода LoggerFinder.getLogger, чтобы создать фактический регистратор, предоставляемый системой журналирования, например, для возможности получать регистраторы во время инициализации системы.
Требования к реализации:
Экземпляры, возвращаемые этим методом, направляют сообщения регистраторам, полученным путем вызова LoggerFinder.getLogger(name, module), где module — модуль вызывающего кода. Если System.getLogger вызывается из контекста, в котором в стеке нет кадра вызывающего кода (например, при прямом вызове из присоединенного потока JNI), выбрасывается IllegalCallerException. Чтобы получить регистратор в таком контексте, используйте вспомогательный класс, который будет неявно определен как вызывающий, либо вместо этого воспользуйтесь системным LoggerFinder для получения регистратора. Учтите, что последний способ может привести к немедленной инициализации базовой системы журналирования.
Параметры:
name — имя регистратора.
Возвращает:
экземпляр System.Logger, который может использовать вызывающий класс.
Вызывает:
NullPointerException — если name равно null.
IllegalCallerException — если в стеке нет кадра вызывающего кода Java.
Начиная с:
9

getLogger

public static System.Logger getLogger(String name, ResourceBundle bundle)
Возвращает локализуемый экземпляр Logger для использования вызывающим кодом. Возвращаемый регистратор будет использовать предоставленный пакет ресурсов для локализации сообщений.
Примечание API:
Этот метод предназначен для использования после полной инициализации системы. Он может вызвать немедленную загрузку и инициализацию службы System.LoggerFinder, что может привести к проблемам, если среда выполнения Java еще не готова инициализировать конкретную реализацию службы. Системным классам, которые могут быть загружены на раннем этапе последовательности загрузки и которым необходимо записывать локализованные сообщения, следует создавать регистратор с помощью getLogger(java.lang.String), а затем использовать методы журналирования, принимающие пакет ресурсов в качестве параметра.
Требования к реализации:
Возвращаемый регистратор будет выполнять локализацию сообщений согласно спецификации LoggerFinder.getLocalizedLogger(name, bundle, module), где module — модуль вызывающего кода. Если System.getLogger вызывается из контекста, в котором в стеке нет кадра вызывающего кода (например, при прямом вызове из присоединенного потока JNI), выбрасывается IllegalCallerException. Чтобы получить регистратор в таком контексте, используйте вспомогательный класс, который будет неявно определен как вызывающий, либо вместо этого воспользуйтесь системным LoggerFinder для получения регистратора. Учтите, что последний способ может привести к немедленной инициализации базовой системы журналирования.
Параметры:
name — имя регистратора.
bundle — пакет ресурсов.
Возвращает:
экземпляр System.Logger, который будет использовать предоставленный пакет ресурсов для локализации сообщений.
Вызывает:
NullPointerException — если name равно null или bundle равно null.
IllegalCallerException — если в стеке нет кадра вызывающего кода Java.
Начиная с:
9

exit

public static void exit(int status)
Запускает последовательность завершения работы виртуальной машины Java. Этот метод запускает последовательность завершения работы (если она еще не запущена), а затем блокируется на неопределенный срок. Метод не возвращает управление и не выбрасывает исключение; то есть он не завершается ни нормально, ни аварийно.

Аргумент используется в качестве кода состояния. По соглашению ненулевой код состояния указывает на аварийное завершение.

Вызов System.exit(n) фактически эквивалентен вызову:

    Runtime.getRuntime().exit(n)
Примечание по реализации:
Запуск последовательности завершения работы регистрируется методом Runtime.exit(int).
Параметры:
status — код завершения.
См. также:
  • Runtime.exit(int)

gc

public static void gc()
Запускает сборщик мусора в виртуальной машине Java.

Вызов метода gc предлагает виртуальной машине Java приложить усилия для переработки неиспользуемых объектов, чтобы освободить занимаемую ими память для повторного использования виртуальной машиной Java. Когда управление возвращается из вызова метода, виртуальная машина Java приложила максимальные усилия для освобождения пространства, занятого всеми неиспользуемыми объектами. Не гарантируется, что эти усилия приведут к переработке какого-либо определенного количества неиспользуемых объектов, освобождению какого-либо определенного объема пространства или завершатся к какому-либо определенному моменту — до возврата из метода или вообще. Также не гарантируется, что эти усилия позволят определить изменение достижимости какого-либо определенного количества объектов или что какое-либо определенное количество объектов Reference будет очищено и помещено в очередь.

Вызов System.gc() фактически эквивалентен вызову:

Runtime.getRuntime().gc()
См. также:
  • Runtime.gc()

runFinalization

@Deprecated(since="18", forRemoval=true) public static void runFinalization()
Устарело, планируется удаление: этот элемент API может быть удален в будущей версии.
Финализация устарела и планируется к удалению. Общие сведения и подробности о вариантах миграции см. в описании Object.finalize().

Если JVM работает с отключенной или удаленной финализацией, объекты, ожидающие финализации, отсутствуют, поэтому этот метод ничего не делает.

Запускает методы финализации всех объектов, ожидающих финализации. Вызов этого метода предлагает виртуальной машине Java приложить усилия для запуска методов finalize объектов, которые были признаны отброшенными, но методы finalize которых еще не были запущены. Когда управление возвращается из вызова метода, виртуальная машина Java приложила максимальные усилия для завершения всех ожидающих финализаций.

Вызов System.runFinalization() фактически эквивалентен вызову:

Runtime.getRuntime().runFinalization()
См. Спецификацию языка Java:
12.6 Финализация экземпляров классов
См. также:
  • Runtime.runFinalization()

load

public static void load(String filename)
load — это ограниченный метод платформы Java.
Программы могут использовать load только при включенном доступе к ограниченным методам.
Ограниченные методы небезопасны и при неправильном использовании могут привести к сбою JVM или повреждению памяти.
Загружает собственную библиотеку, указанную аргументом filename. Аргумент filename должен быть абсолютным путем. Если аргумент filename после удаления платформенного префикса библиотеки, пути и расширения файла указывает на библиотеку с именем, например, L, и собственная библиотека с именем L статически связана с виртуальной машиной, то вызывается экспортируемая библиотекой функция JNI_OnLoad_L, а не предпринимается попытка загрузить динамическую библиотеку. Файл с именем, соответствующим аргументу, не обязан существовать в файловой системе. Дополнительные сведения см. в спецификации JNI. В противном случае аргумент filename преобразуется в образ собственной библиотеки способом, зависящим от реализации.

Вызов System.load(name) фактически эквивалентен вызову:

Runtime.getRuntime().load(name)
Параметры:
filename — файл для загрузки.
Вызывает:
UnsatisfiedLinkError — если имя файла не является абсолютным путем, собственная библиотека не связана статически с виртуальной машиной или хост-система не может преобразовать библиотеку в образ собственной библиотеки.
NullPointerException — если filename равно null
IllegalCallerException — если вызывающий код находится в модуле, для которого не включен доступ к собственному коду.
Внешние спецификации
  • Спецификация интерфейса Java Native
См. также:
  • Runtime.load(java.lang.String)ОГРАНИЧЕНО

loadLibrary

public static void loadLibrary(String libname)
loadLibrary — это ограниченный метод платформы Java.
Программы могут использовать loadLibrary только при включенном доступе к ограниченным методам.
Ограниченные методы небезопасны и при неправильном использовании могут привести к сбою JVM или повреждению памяти.
Загружает собственную библиотеку, указанную аргументом libname. Аргумент libname не должен содержать платформенный префикс, расширение файла или путь. Если собственная библиотека с именем libname статически связана с виртуальной машиной, вызывается экспортируемая библиотекой функция JNI_OnLoad_libname. Дополнительные сведения см. в спецификации JNI. В противном случае библиотека с именем libname загружается из системного расположения библиотек и преобразуется в образ собственной библиотеки способом, зависящим от реализации.

Вызов System.loadLibrary(name) фактически эквивалентен вызову

Runtime.getRuntime().loadLibrary(name)
Параметры:
libname — имя библиотеки.
Вызывает:
UnsatisfiedLinkError — если аргумент libname содержит путь к файлу, собственная библиотека не связана статически с виртуальной машиной или хост-система не может преобразовать библиотеку в образ собственной библиотеки.
NullPointerException — если libname равно null
IllegalCallerException — если вызывающий код находится в модуле, для которого не включен доступ к собственному коду.
Внешние спецификации
  • Спецификация интерфейса Java Native
См. также:
  • Runtime.loadLibrary(java.lang.String)ОГРАНИЧЕНО

mapLibraryName

public static String mapLibraryName(String libname)
Преобразует имя библиотеки в строку, зависящую от платформы и представляющую собственную библиотеку.
Параметры:
libname — имя библиотеки.
Возвращает:
имя собственной библиотеки, зависящее от платформы.
Вызывает:
NullPointerException — если libname равно null
Начиная с:
1.2
См. также:
  • loadLibrary(java.lang.String)ОГРАНИЧЕНО
  • ClassLoader.findLibrary(java.lang.String)

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по 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