Класс System

public final class System
extends Object

Класс System содержит несколько полезных полей и методов класса. Его нельзя создать (инстанцировать). Среди возможностей, предоставляемых классом System, — потоки стандартного ввода, стандартного вывода и потоки ошибок; доступ к внешним свойствам и переменным среды; возможность загрузки файлов и библиотек; и вспомогательный метод для быстрого копирования части массива.

С момента:
1.0

Вложенные классы

Модификатор и тип Класс Описание
static interface  System.Logger

Экземпляры System.Logger регистрируют сообщения, которые будут маршрутизированы к базовой системе регистрации, используемой LoggerFinder.

static class  System.LoggerFinder

Сервис LoggerFinder отвечает за создание, управление и конфигурирование логгеров в базовой системе, которую он использует.

Поля

Модификатор и тип Поле Описание
static PrintStream err

Поток стандартной ошибки.

static InputStream in

Поток стандартного ввода.

static 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()

Выполняет сборку мусора.

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()

Возвращает системный интерфейс безопасности.

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()

Выполняет методы завершения для любых объектов, ожидающих завершения.

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 s)

Устанавливает системную безопасность.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Поля

in

public static final InputStream in

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

out

public static final PrintStream out

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

Для простых автономных приложений 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)

err

public static final PrintStream err

Стандартный поток вывода ошибок. Поток уже открыт и готов для приема данных.

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

Методы

setIn

public static void setIn(InputStream in)

Переназначение стандартного потока ввода. Сначала, если существует менеджер безопасности, вызывается его метод checkPermission с разрешением RuntimePermission("setIO"), чтобы проверить, разрешено ли переназначение стандартного потока ввода.

Параметры:
in - новый стандартный поток ввода.
Исключения:
SecurityException - если менеджер безопасности существует и его метод checkPermission не разрешает переназначение стандартного потока ввода.
С:
1.1
См. также:
SecurityManager.checkPermission(java.security.Permission), RuntimePermission

setOut

public static void setOut(PrintStream out)

Переназначение стандартного потока вывода. Сначала, если существует менеджер безопасности, вызывается его метод checkPermission с разрешением RuntimePermission("setIO"), чтобы проверить, разрешено ли переназначение стандартного потока вывода.

Параметры:
out - новый стандартный поток вывода
Исключения:
SecurityException - если менеджер безопасности существует и его метод checkPermission не разрешает переназначение стандартного потока вывода.
С:
1.1
См. также:
SecurityManager.checkPermission(java.security.Permission), RuntimePermission

setErr

public static void setErr(PrintStream err)

Переназначение стандартного потока вывода ошибок. Сначала, если существует менеджер безопасности, вызывается его метод checkPermission с разрешением RuntimePermission("setIO"), чтобы проверить, разрешено ли переназначение стандартного потока вывода ошибок.

Параметры:
err - новый стандартный поток вывода ошибок.
Исключения:
SecurityException - если менеджер безопасности существует и его метод checkPermission не разрешает переназначение стандартного потока вывода ошибок.
С:
1.1
См. также:
SecurityManager.checkPermission(java.security.Permission), RuntimePermission

console

public static Console console()

Возвращает уникальный объект Console, связанный с текущей виртуальной машиной Java, если таковой имеется.

Возвращает:
Системную консоль, если она есть, в противном случае null.
С:
1.6

inheritedChannel

public static Channel inheritedChannel()
                                throws IOException

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

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

Возвращает:
Унаследованный канал, если он есть, в противном случае null.
Исключения:
IOException - Если произошла ошибка ввода-вывода
SecurityException - Если менеджер безопасности присутствует и не разрешает доступ к каналу.
С:
1.5

setSecurityManager

public static void setSecurityManager(SecurityManager s)

Устанавливает системную безопасность. Если менеджер безопасности уже установлен, этот метод сначала вызывает метод менеджера безопасности checkPermission с разрешением RuntimePermission("setSecurityManager"), чтобы убедиться, что разрешено заменить существующий менеджер безопасности. Это может привести к выбрасыванию SecurityException.

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

Параметры:
s - менеджер безопасности.
Исключения:
SecurityException - если менеджер безопасности уже установлен и его метод checkPermission не разрешает его замену.
См. также:
getSecurityManager(), SecurityManager.checkPermission(java.security.Permission), RuntimePermission

getSecurityManager

public static SecurityManager getSecurityManager()

Получает системный интерфейс безопасности.

Возвращает:
Если для текущего приложения уже установлен менеджер безопасности, то возвращается этот менеджер безопасности; в противном случае возвращается null.
См. также:
setSecurityManager(java.lang.SecurityManager)

currentTimeMillis

public static long currentTimeMillis()

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

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

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

nanoTime

public static long nanoTime()

Возвращает текущее значение источника времени высокой точности выполняемой виртуальной машины 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, и никакие другие позиции целевого массива не будут изменены. (Из-за уже перечисленных ограничений этот абзац фактически применяется только к ситуации, когда оба массива имеют типы элементов, которые являются ссылочными типами.)

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

identityHashCode

public static int identityHashCode(Object x)

Возвращает тот же хэш-код для данного объекта, что и вернул бы метод hashCode() по умолчанию, независимо от того, переопределяет ли класс данного объекта hashCode() или нет. Хэш-код для null-ссылок равен нулю.

Parameters:
x - объект, для которого должен быть рассчитан хэш-код
Returns:
хэш-код
Since:
1.1
See Also:
Object.hashCode(), Objects.hashCode(Object)

getProperties

public static Properties getProperties()

Определяет текущие системные свойства. Сначала, если существует менеджер безопасности, вызывается его метод checkPropertiesAccess без аргументов. Это может привести к исключению безопасности.

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

Ключ Описание связанного значения
java.version Версия Java Runtime Environment, которая может быть интерпретирована как Runtime.Version
java.version.date Дата версии Java Runtime Environment в формате ISO-8601 ГГГГ-ММ-ДД, которая может быть интерпретирована как LocalDate
java.vendor Производитель Java Runtime Environment
java.vendor.url URL производителя Java
java.vendor.version Версия производителя Java
java.home Директория установки Java
java.vm.specification.version Версия спецификации Java Virtual Machine, значение которой является элементом feature версии runtime version
java.vm.specification.vendor Производитель спецификации Java Virtual Machine
java.vm.specification.name Имя спецификации Java Virtual Machine
java.vm.version Версия реализации Java Virtual Machine, которая может быть интерпретирована как Runtime.Version
java.vm.vendor Производитель реализации Java Virtual Machine
java.vm.name Имя реализации Java Virtual Machine
java.specification.version Версия спецификации Java Runtime Environment, значение которой является элементом feature версии runtime version
java.specification.vendor Производитель спецификации Java Runtime Environment
java.specification.name Имя спецификации Java Runtime Environment
java.class.version Номер версии формата класса Java
java.class.path Путь класса Java (подробнее см. ClassLoader.getSystemClassLoader())
java.library.path Список путей для поиска при загрузке библиотек
java.io.tmpdir Путь по умолчанию к временным файлам
java.compiler Имя JIT-компилятора для использования
os.name Имя операционной системы
os.arch Архитектура операционной системы
os.version Версия операционной системы
file.separator Разделитель файлов ("/" в UNIX)
path.separator Разделитель путей (":" в UNIX)
line.separator Разделитель строк ("\n" в UNIX)
user.name Имя учетной записи пользователя
user.home Домашний каталог пользователя
user.dir Текущий рабочий каталог пользователя

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

Обратите внимание, что даже если менеджер безопасности не разрешает операцию getProperties, он может разрешить операцию getProperty(String).

Примечание API:
Изменение стандартного системного свойства может привести к непредсказуемым результатам, если не указано иное. Значения свойств могут кешироваться во время инициализации или при первом использовании. Установка стандартного свойства после инициализации с помощью getProperties(), setProperties(Properties), setProperty(String, String) или clearProperty(String) может не иметь желаемого эффекта.
Примечание реализации:
Помимо стандартных системных свойств, системные свойства могут включать следующие ключи:
Ключ Описание связанного значения
jdk.module.path Путь к модулю приложения
jdk.module.upgrade.path Путь к модулю обновления
jdk.module.main Имя модуля начального/главного модуля
jdk.module.main.class Имя главного класса начального модуля
Возвращает:
системные свойства
Имеет исключение:
SecurityException - если менеджер безопасности существует, и его метод checkPropertiesAccess не разрешает доступ к системным свойствам.
См. также:
setProperties(java.util.Properties), SecurityException, SecurityManager.checkPropertiesAccess(), Properties

lineSeparator

public static String lineSeparator()

Возвращает строку разделителя строк, зависящую от системы. Она всегда возвращает одно и то же значение — начальное значение свойства системы line.separator.

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

Возвращает:
строку разделителя строк, зависящую от системы
С:
1.7

setProperties

public static void setProperties(Properties props)

Устанавливает системные свойства в аргумент Properties. Сначала, если менеджер безопасности существует, вызывается его метод checkPropertiesAccess без аргументов. Это может привести к исключению безопасности.

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

Примечание API:
Изменение стандартного системного свойства может привести к непредсказуемым результатам, если не указано иное. Подробности см. в getProperties.
Параметры:
props - новые системные свойства.
Имеет исключение:
SecurityException - если менеджер безопасности существует и его метод checkPropertiesAccess не позволяет получить доступ к системным свойствам.
См. также:
getProperties(), Properties, SecurityException, SecurityManager.checkPropertiesAccess()

getProperty

public static String getProperty(String key)

Получает системное свойство, указанное заданным ключом. Сначала, если менеджер безопасности существует, вызывается его метод checkPropertyAccess с ключом в качестве аргумента. Это может привести к SecurityException.

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

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

getProperty

public static String getProperty(String key,
                                 String def)

Получает системное свойство, указанное заданным ключом. Сначала, если менеджер безопасности существует, вызывается его метод checkPropertyAccess с key в качестве аргумента.

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

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

setProperty

public static String setProperty(String key,
                                 String value)

Устанавливает системное свойство, указанное заданным ключом. Сначала, если менеджер безопасности существует, вызывается его метод SecurityManager.checkPermission с разрешением PropertyPermission(key, "write"). Это может привести к исключению SecurityException. Если исключение не возникает, указанное свойство устанавливается в заданное значение.

Примечание API:
Изменение стандартного системного свойства может привести к непредсказуемым результатам, если не указано иное. Подробности см. в getProperties.
Параметры:
key - имя системного свойства.
value - значение системного свойства.
Возвращает:
предыдущее значение системного свойства или null, если его не было.
Имеет исключение:
SecurityException - если менеджер безопасности существует и его метод checkPermission не позволяет установить указанное свойство.
NullPointerException - если key или value равно null.
IllegalArgumentException - если key пусто.
С:
1.2
См. также:
getProperty(java.lang.String), getProperty(java.lang.String), getProperty(java.lang.String, java.lang.String), PropertyPermission, SecurityManager.checkPermission(java.security.Permission)

clearProperty

public static String clearProperty(String key)

Удаляет системное свойство, указанное заданным ключом. Сначала, если менеджер безопасности существует, вызывается его метод SecurityManager.checkPermission с разрешением PropertyPermission(key, "write"). Это может привести к исключению SecurityException. Если исключение не возникает, указанное свойство удаляется.

Примечание API:
Изменение стандартного системного свойства может привести к непредсказуемым результатам, если не указано иное. Подробности см. в методе getProperties.
Параметры:
key - имя системного свойства для удаления.
Возвращает:
предыдущее строковое значение системного свойства или null, если свойства с таким ключом не было.
Имеет исключение:
SecurityException - если менеджер безопасности существует и его метод checkPropertyAccess не позволяет получить доступ к указанному системному свойству.
NullPointerException - если key равно null.
IllegalArgumentException - если key пусто.
С:
1.5
См. также:
getProperty(java.lang.String), setProperty(java.lang.String, java.lang.String), Properties, SecurityException, SecurityManager.checkPropertiesAccess()

getenv

public static String getenv(String name)

Получает значение указанной переменной среды. Переменная среды — это зависящее от системы внешнее именованное значение.

Если существует менеджер безопасности, вызывается его метод checkPermission с разрешением RuntimePermission("getenv."+name). Это может привести к тому, что будет брошено исключение SecurityException. Если исключение не брошено, возвращается значение переменной name.

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

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

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

getenv

public static Map<String,String> getenv()

Возвращает представление неизменяемой карты строк текущей среды системы. Окружение — это зависящее от системы отображение имен на значения, которое передается от родительского к дочерним процессам.

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

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

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

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

Если существует менеджер безопасности, вызывается его метод checkPermission с разрешением RuntimePermission("getenv.*"). Это может привести к броску исключения SecurityException.

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

Возвращает:
среду в виде карты имен переменных к значениям
Исключение:
SecurityException — если существует менеджер безопасности и его метод checkPermission не позволяет получить доступ к среде процесса
С:
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 вызывается из контекста, где нет фрейма вызова Java в стеке (например, при вызове непосредственно из присоединенного к 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 Runtime еще не готов к инициализации конкретной реализации службы. Системные классы, которые могут быть загружены на ранних этапах запуска и которым необходимо регистрировать локализованные сообщения, должны создавать логгер с помощью getLogger(java.lang.String), а затем использовать методы логирования, которые принимают ресурсный пул в качестве параметра.
Требования к реализации:
Возвращаемый логгер будет выполнять локализация сообщений, как указано в LoggerFinder.getLocalizedLogger(name, bundle, module), где module — модуль вызывающего объекта. В случаях, когда System.getLogger вызывается из контекста, где нет фрейма вызова Java в стеке (например, при вызове непосредственно из присоединенного к JNI потока), брошено исключение IllegalCallerException. Чтобы получить логгер в таком контексте, используйте вспомогательный класс, который будет неявным образом идентифицирован как вызывающий, или используйте системный LoggerFinder для получения логгера. Обратите внимание, что последнее может привести к ранней инициализации системы логгирования.
Параметры:
name — имя логгера.
bundle — ресурсный пул.
Возвращает:
экземпляр System.Logger, который будет использовать предоставленный ресурсный пул для локализации сообщений.
Исключение:
NullPointerException — если name равно null или bundle равно null.
IllegalCallerException — если в стеке нет фрейма вызова Java.
С:
9

exit

public static void exit(int status)

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

Этот метод вызывает метод exit в классе Runtime. Этот метод никогда не возвращается нормально.

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

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

gc

public static void gc()

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

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

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

runFinalization

public static void runFinalization()

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

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

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

load

public static void load(String filename)

Загружает указанную именем файла нативную библиотеку. Имя файла должно быть полным путем. Если имя файла, очищенное от префиксов, путей и расширений платформы, указывает библиотеку, например, L, и нативная библиотека, называемая L, статически связана с VM, то вызывается функция JNI_OnLoad_L, экспортируемая библиотекой, а не попытка загрузить динамическую библиотеку. Файл с именем, соответствующим аргументу, не обязательно должен существовать в файловой системе. См. Спецификацию JNI для получения дополнительной информации. В противном случае имя файла отображается на образ нативной библиотеки способом, зависящим от реализации.

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

Runtime.getRuntime().load(name)
Параметры:
filename - загружаемый файл.
Исключения:
SecurityException - если существует менеджер безопасности, и его метод checkLink не разрешает загрузку указанной динамической библиотеки
UnsatisfiedLinkError - если имя файла не является абсолютным путем, нативная библиотека не статически связана с виртуальной машиной или система не может сопоставить библиотеку с образом нативной библиотеки.
NullPointerException - если filename равно null
См. также:
Runtime.load(java.lang.String), SecurityManager.checkLink(java.lang.String)

loadLibrary

public static void loadLibrary(String libname)

Загружает нативную библиотеку, указанную параметром libname. Параметр libname не должен содержать префикса, расширения файла или пути, специфичных для платформы. Если нативная библиотека с именем libname статически связана с виртуальной машиной, вызывается функция JNI_OnLoad_libname, экспортируемая библиотекой. См. Спецификацию JNI для получения более подробной информации. В противном случае, имя библиотеки libname загружается из системного расположения библиотеки и сопоставляется с образом нативной библиотеки способом, зависящим от реализации.

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

Runtime.getRuntime().loadLibrary(name)
Параметры:
libname - имя библиотеки.
Исключения:
SecurityException - если существует менеджер безопасности, и его метод checkLink не разрешает загрузку указанной динамической библиотеки
UnsatisfiedLinkError - если параметр libname содержит путь к файлу, нативная библиотека не статически связана с виртуальной машиной, или система не может сопоставить библиотеку с образом нативной библиотеки.
NullPointerException - если libname равно null
См. также:
Runtime.loadLibrary(java.lang.String), SecurityManager.checkLink(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)

© 1993, 2020, 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/System.html

Spec-Zone .ru
спецификации, руководства, описания, API