Spec-Zone.ru › OpenJDK 17

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

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

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

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

in

public static final InputStream in
Стандартный поток ввода. Этот поток уже открыт и готов к предоставлению входных данных. Как правило, этот поток соответствует вводу с клавиатуры или другому источнику ввода, указанному средой хоста или пользователем. В случае, если этот поток обернут в InputStreamReader, для кодировки следует использовать Console.charset(), или рассмотрите использование Console.reader().
См. также:
  • Console.charset()
  • Console.reader()

out

public static final PrintStream out
Стандартный поток вывода. Этот поток уже открыт и готов принимать выходные данные. Обычно этот поток соответствует выводу на дисплей или другому месту назначения вывода, указанному средой хоста или пользователем. Кодировка, используемая при преобразовании символов в байты, эквивалентна Console.charset(), если Console существует, в противном случае Charset.defaultCharset().

Для простых автономных 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)
  • Console.charset()
  • Charset.defaultCharset()

err

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

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

См. также:
  • Console.charset()
  • Charset.defaultCharset()

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

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

@Deprecated(since="17", forRemoval=true) public static void setSecurityManager(SecurityManager sm)
Устарело, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Этот метод полезен только в сочетании с менеджером безопасности, который устарел и может быть удален в будущей версии. Следовательно, этот метод также устарел и может быть удален. Замены для менеджера безопасности или этого метода нет.
Устанавливает менеджер безопасности во всей системе. Если уже установлен менеджер безопасности, этот метод сначала вызывает метод менеджера безопасности checkPermission с разрешением RuntimePermission("setSecurityManager") для проверки возможности замены существующего менеджера безопасности. Это может привести к выбрасыванию SecurityException.

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

Примечание для реализации:
В реализации JDK, если виртуальная машина Java запускается со системной переменной java.security.manager , установленной на специальный токен "disallow", то метод setSecurityManager не может использоваться для установки менеджера безопасности.
Параметры:
sm - менеджер безопасности или null
Исключения:
SecurityException - если менеджер безопасности уже установлен и его метод checkPermission не разрешает его замену
UnsupportedOperationException - если sm не равен null и установка менеджера безопасности не разрешена динамически
См. также:
  • getSecurityManager()
  • SecurityManager.checkPermission(java.security.Permission)
  • RuntimePermission

getSecurityManager

@Deprecated(since="17", forRemoval=true) public static SecurityManager getSecurityManager()
Deprecated, for removal: This API element is subject to removal in a future version.
This method is only useful in conjunction with the Security Manager, which is deprecated and subject to removal in a future release. Consequently, this method is also deprecated and subject to removal. There is no replacement for the Security Manager or this method.
Gets the system-wide security manager.
Returns:
if a security manager has already been established for the current application, then that security manager is returned; otherwise, null is returned.
See Also:
  • setSecurityManager(java.lang.SecurityManager)

currentTimeMillis

public static long currentTimeMillis()
Returns the current time in milliseconds. Note that while the unit of time of the return value is a millisecond, the granularity of the value depends on the underlying operating system and may be larger. For example, many operating systems measure time in units of tens of milliseconds.

See the description of the class Date for a discussion of slight discrepancies that may arise between "computer time" and coordinated universal time (UTC).

Returns:
the difference, measured in milliseconds, between the current time and midnight, January 1, 1970 UTC.
See Also:
  • Date

nanoTime

public static long nanoTime()
Returns the current value of the running Java Virtual Machine's high-resolution time source, in nanoseconds. This method can only be used to measure elapsed time and is not related to any other notion of system or wall-clock time. The value returned represents nanoseconds since some fixed but arbitrary origin time (perhaps in the future, so values may be negative). The same origin is used by all invocations of this method in an instance of a Java virtual machine; other virtual machine instances are likely to use a different origin.

This method provides nanosecond precision, but not necessarily nanosecond resolution (that is, how frequently the value changes) - no guarantees are made except that the resolution is at least as good as that of currentTimeMillis().

Differences in successive calls that span greater than approximately 292 years (263 nanoseconds) will not correctly compute elapsed time due to numerical overflow.

The values returned by this method become meaningful only when the difference between two such values, obtained within the same instance of a Java virtual machine, is computed.

For example, to measure how long some code takes to execute:

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

To compare elapsed time against a timeout, use

 
 if (System.nanoTime() - startTime >= timeoutNanos) ...
instead of
 
 if (System.nanoTime() >= startTime + timeoutNanos) ...
because of the possibility of numerical overflow.
Returns:
the current value of the running Java Virtual Machine's high-resolution time source, in nanoseconds
Since:
1.5

arraycopy

public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
Copies an array from the specified source array, beginning at the specified position, to the specified position of the destination array. A subsequence of array components are copied from the source array referenced by src to the destination array referenced by dest. The number of components copied is equal to the length argument. The components at positions srcPos through srcPos+length-1 in the source array are copied into positions destPos through destPos+length-1, respectively, of the destination array.

If the src and dest arguments refer to the same array object, then the copying is performed as if the components at positions srcPos through srcPos+length-1 were first copied to a temporary array with length components and then the contents of the temporary array were copied into positions destPos through destPos+length-1 of the destination array.

If dest is null, then a NullPointerException is thrown.

If src is null, then a NullPointerException is thrown and the destination array is not modified.

Otherwise, if any of the following is true, an ArrayStoreException is thrown and the destination is not modified:

  • The src argument refers to an object that is not an array.
  • The dest argument refers to an object that is not an array.
  • The src argument and dest argument refer to arrays whose component types are different primitive types.
  • The src argument refers to an array with a primitive component type and the dest argument refers to an array with a reference component type.
  • The src argument refers to an array with a reference component type and the dest argument refers to an array with a primitive component type.

Otherwise, if any of the following is true, an IndexOutOfBoundsException is thrown and the destination is not modified:

  • The srcPos argument is negative.
  • The destPos argument is negative.
  • The length argument is negative.
  • srcPos+length is greater than src.length, the length of the source array.
  • destPos+length is greater than dest.length, the length of the destination array.

Otherwise, if any actual component of the source array from position srcPos through srcPos+length-1 cannot be converted to the component type of the destination array by assignment conversion, an ArrayStoreException is thrown. In this case, let k be the smallest nonnegative integer less than length such that src[srcPos+k] cannot be converted to the component type of the destination array; when the exception is thrown, source array components from positions srcPos through srcPos+k-1 will already have been copied to destination array positions destPos through destPos+k-1 and no other positions of the destination array will have been modified. (Because of the restrictions already itemized, this paragraph effectively applies only to the situation where both arrays have component types that are reference types.)

Parameters:
src - the source array.
srcPos - starting position in the source array.
dest - the destination array.
destPos - starting position in the destination data.
length - the number of array elements to be copied.
Throws:
IndexOutOfBoundsException - if copying would cause access of data outside array bounds.
ArrayStoreException - if an element in the src array could not be stored into the dest array because of a type mismatch.
NullPointerException - if either src or dest is null.

identityHashCode

public static int identityHashCode(Object x)
Returns the same hash code for the given object as would be returned by the default method hashCode(), whether or not the given object's class overrides hashCode(). The hash code for the null reference is zero.
Parameters:
x - object for which the hashCode is to be calculated
Returns:
the hashCode
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
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
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 Текущая рабочая директория пользователя
native.encoding Имя кодировки символов, полученное из среды хоста и/или настроек пользователя. Установка этого свойства системы не имеет эффекта.

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

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

API Note:
Изменение стандартного свойства системы может привести к непредсказуемым результатам, если не указано иное. Значения свойств могут кэшироваться во время инициализации или при первом использовании. Установка стандартного свойства после инициализации с помощью getProperties(), setProperties(Properties), setProperty(String, String) или clearProperty(String) может не иметь желаемого эффекта.
Implementation Note:
В дополнение к стандартным свойствам системы, свойства системы могут включать следующие ключи:
Показывает ключи свойств и соответствующие значения
Ключ Описание связанного значения
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 Note:
Изменение стандартного свойства системы может привести к непредсказуемым результатам, если не указано иное. Подробнее см. getProperties.
Параметры:
props - новые свойства системы.
Бросает:
SecurityException - если существует менеджер безопасности, и его метод checkPropertiesAccess не разрешает доступ к свойствам системы.
См. также:
  • getProperties()
  • Properties
  • SecurityException
  • SecurityManager.checkPropertiesAccess()

getProperty

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

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

API Note:
Изменение стандартного свойства системы может привести к непредсказуемым результатам, если не указано иное. Подробнее см. 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.

Parameters:
key - имя системной переменной.
def - значение по умолчанию.
Returns:
строковое значение системной переменной или значение по умолчанию, если переменной с таким ключом нет.
Throws:
SecurityException - если менеджер безопасности существует и его метод checkPropertyAccess не разрешает доступ к указанной системной переменной.
NullPointerException - если key имеет значение null.
IllegalArgumentException - если key пусто.
See Also:
  • 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 Note:
Изменение стандартной системной переменной может иметь непредсказуемые результаты, если не указано иное. См. getProperties для получения подробностей.
Parameters:
key - имя системной переменной.
value - значение системной переменной.
Returns:
предыдущее значение системной переменной или null, если его не было.
Throws:
SecurityException - если менеджер безопасности существует и его метод checkPermission не разрешает установку указанной переменной.
NullPointerException - если key или value пусто.
IllegalArgumentException - если key пусто.
Since:
1.2
See Also:
  • 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 Note:
Изменение стандартной системной переменной может иметь непредсказуемые результаты, если не указано иное. См. метод getProperties для получения подробностей.
Parameters:
key - имя системной переменной, подлежащей удалению.
Returns:
предыдущее строковое значение системной переменной или null, если переменной с таким ключом не было.
Throws:
SecurityException - если менеджер безопасности существует и его метод checkPropertyAccess не разрешает доступ к указанной системной переменной.
NullPointerException - если key пусто.
IllegalArgumentException - если key пусто.
Since:
1.5
See Also:
  • 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.

Parameters:
name - имя переменной среды
Returns:
строковое значение переменной или null, если переменная не определена в системной среде
Throws:
NullPointerException - если name пусто
SecurityException - если менеджер безопасности существует и его метод checkPermission не разрешает доступ к переменной среды name
See Also:
  • getenv()
  • ProcessBuilder.environment()

getenv

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

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

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

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

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

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

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

Returns:
среда как отображение имен переменных на значения
Throws:
SecurityException - если менеджер безопасности существует и его метод checkPermission не разрешает доступ к среде процесса
Since:
1.5
See Also:
  • 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 Runtime ещё не готов к инициализации конкретной реализации сервиса. Системные классы, которые могут загружаться на ранней стадии запуска и нуждаются в локализованных сообщениях, должны создавать логгер с помощью 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 виртуальной машины. Аргумент используется в качестве кода состояния; по соглашению, ненулевой код состояния указывает на нештатное завершение.

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

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

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

gc

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

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

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

loadLibrary

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

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

 Runtime.getRuntime().loadLibrary(name)
 
Параметры:
libname — имя библиотеки.
Исключения:
SecurityException — если существует менеджер безопасности, и его метод checkLink не разрешает загрузку указанной динамической библиотеки
UnsatisfiedLinkError — если аргумент libname содержит путь к файлу, нативная библиотека не статически связана с VM или библиотека не может быть отображена в нативную библиотечную картинку системой-хостом.
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, 2021, 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/17/docs/api/java.base/java/lang/System.html

Spec-Zone.ru

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