Класс System
- java.lang.Object
-
- java.lang.System
public final class System extends Object
Класс System содержит несколько полезных полей и методов класса. Его нельзя создать (инстанцировать). Среди возможностей, предоставляемых классом System, — потоки стандартного ввода, стандартного вывода и потоки ошибок; доступ к внешним свойствам и переменным среды; возможность загрузки файлов и библиотек; и вспомогательный метод для быстрого копирования части массива.
- С момента:
- 1.0
Вложенные классы
| Модификатор и тип | Класс | Описание |
|---|---|---|
static interface | System.Logger | Экземпляры |
static class | System.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() | Возвращает уникальный объект |
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) | Возвращает экземпляр |
static System.Logger | getLogger(String name,
ResourceBundle bundle) | Возвращает локализацию экземпляра |
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) | Загружает родную библиотеку, заданную аргументом |
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) | Устанавливает системные свойства в аргумент |
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