Spec-Zone.ru › OpenJDK 21

Класс System

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

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

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

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

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

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

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

Методы, объявленные в классе 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 существует, в противном случае - stdout.encoding.

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

     System.out.println(data)
 

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

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

err

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

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

См. также:
  • Console.charset()
  • stderr.encoding

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

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 не может быть использован для установки менеджера безопасности. Дополнительные сведения см. в разделе спецификации класса SecurityManager.
Параметры:
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.
Получает системный менеджер безопасности.
Returns:
если для текущего приложения уже установлен менеджер безопасности, то возвращается этот менеджер; в противном случае возвращается null.
See Also:
  • setSecurityManager(java.lang.SecurityManager)

currentTimeMillis

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

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

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

nanoTime

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

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

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

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

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

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

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

 
 if (System.nanoTime() - startTime >= timeoutNanos) ...
вместо
 
 if (System.nanoTime() >= startTime + timeoutNanos) ...
, из-за возможности переполнения.
Returns:
текущее значение источника времени с высокой точностью виртуальной машины Java, в наносекундах
Since:
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 - объект, для которого необходимо вычислить hashCode
Returns:
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.maintenance.version Версия обслуживания спецификации Java Runtime Environment, может быть интерпретирована как положительное целое число (необязательно, см. ниже)
java.specification.vendor Производитель спецификации Java Runtime Environment
java.specification.name Название спецификации Java Runtime Environment
java.class.version Последняя версия формата файлов Java-классов, распознаваемая Java Runtime как "MAJOR.MINOR", где MAJOR и MINOR отформатированы как десятичные целые числа
java.class.path Путь к классовой библиотеке Java (подробнее см. ClassLoader.getSystemClassLoader())
java.library.path Список путей для поиска при загрузке библиотек
java.io.tmpdir Путь к временным файлам по умолчанию
os.name Имя операционной системы
os.arch Архитектура операционной системы
os.version Версия операционной системы
file.separator Разделитель файлов ("/" в UNIX)
path.separator Разделитель путей (":" в UNIX)
line.separator Разделитель строк ("\n" в UNIX)
user.name Имя учетной записи пользователя
user.home Домашняя директория пользователя
user.dir Текущая рабочая директория пользователя
native.encoding Имя кодировки символов, полученное из среды хоста и/или настроек пользователя. Установка этого системного свойства не имеет эффекта.
stdout.encoding Имя кодировки символов для System.out. Java Runtime может быть запущен с системным свойством, установленным в UTF-8, запуск с другим значением свойства приводит к неопределенному поведению.
stderr.encoding Имя кодировки символов для System.err. Java Runtime может быть запущен с системным свойством, установленным в UTF-8, запуск с другим значением свойства приводит к неопределенному поведению.

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

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

Обратите внимание, что даже если менеджер безопасности не разрешает операцию 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 Имя главного класса начального модуля
file.encoding Название кодировки по умолчанию, по умолчанию UTF-8. Свойство можно установить в командной строке со значением UTF-8 или COMPAT. Если оно установлено в командной строке со значением COMPAT, тогда значение заменяется значением свойства native.encoding во время запуска. Установка свойства в значение, отличное от UTF-8 или COMPAT, приводит к неопределенному поведению.
Returns:
системные свойства
Throws:
SecurityException - если менеджер безопасности существует и его метод checkPropertiesAccess не разрешает доступ к системным свойствам.
See Also:
  • setProperties(java.util.Properties)
  • SecurityException
  • SecurityManager.checkPropertiesAccess()
  • Properties

lineSeparator

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

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

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

setProperties

public static void setProperties(Properties props)
Устанавливает системные свойства в аргумент Properties. Сначала, если есть менеджер безопасности, вызывается его метод checkPropertiesAccess без аргументов. Это может привести к исключению безопасности.

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

API Note:
Изменение стандартного системного свойства может привести к непредсказуемым результатам, если не указано иное. См. getProperties для получения подробностей.
Parameters:
props - новые системные свойства.
Throws:
SecurityException - если менеджер безопасности существует и его метод checkPropertiesAccess не разрешает доступ к системным свойствам.
See Also:
  • 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 пусто.
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-значения. Попытка запросить наличие 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 вызывается из контекста, где нет кадра вызывающего кода в стеке (например, при вызове непосредственно из присоединённого к 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 Virtual Machine. Если менеджер безопасности не запрещает завершение работы, этот метод инициирует последовательность завершения (если она ещё не начата) и затем блокируется бесконечно. Этот метод не возвращает значения и не выбрасывает исключение; то есть, он не завершается ни нормально, ни с ошибкой.

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

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

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

gc

public static void gc()
Выполняет сборку мусора в Java Virtual Machine.

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

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

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

runFinalization

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

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

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

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

 Runtime.getRuntime().runFinalization()
 
См. Спецификацию языка Java:
12.6 Finalization of Class Instances
См. также:
  • Runtime.runFinalization()

load

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

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

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

mapLibraryName

public static String mapLibraryName(String libname)
Преобразует имя библиотеки в платформозависимую строку, представляющую системную библиотеку.
Parameters:
libname - имя библиотеки.
Returns:
имя системной библиотеки, зависящее от платформы.
Throws:
NullPointerException - если libname является null
Since:
1.2
См. также:
  • loadLibrary(java.lang.String)
  • ClassLoader.findLibrary(java.lang.String)

© 1993, 2023, 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/21/docs/api/java.base/java/lang/System.html

Spec-Zone.ru

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