Spec-Zone.ru › OpenJDK 24

Класс System

java.lang.Object
java.lang.System
public final class System extends Object
Класс System содержит несколько полезных полей и методов класса. Его нельзя создать. К числу возможностей, предоставляемых классом System, относятся стандартные потоки ввода, вывода и ошибок; доступ к внешним свойствам и переменным среды; возможность загрузки файлов и библиотек; а также вспомогательный метод для быстрого копирования части массива.
Since:
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)
Ограничено.
Загружает системную библиотеку, указанную именем файла.
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
Стандартный поток вывода. Этот поток уже открыт и готов для приема данных вывода. Обычно этот поток соответствует выводу на экран или другому пункту назначения вывода, указанному средой выполнения или пользователем. Кодировка, используемая при преобразовании символов в байты, эквивалентна stdout.encoding.

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

     System.out.println(data)
 

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

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

err

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

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

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

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

setIn

public static void setIn(InputStream in)
Переназначает стандартный поток ввода.
Параметры:
in - новый стандартный поток ввода.
С:
1.1

setOut

public static void setOut(PrintStream out)
Переназначает стандартный поток вывода.
Параметры:
out - новый стандартный поток вывода
С:
1.1

setErr

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

console

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

inheritedChannel

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

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

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

setSecurityManager

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

getSecurityManager

@Deprecated(since="17", forRemoval=true) public static SecurityManager getSecurityManager()
Устарело, возможно, удалено: Этот элемент API может быть удален в будущей версии.
Этот метод изначально возвращал системный менеджер безопасности. Установка менеджера безопасности больше не поддерживается. Нет замены для менеджера безопасности или этого метода.
Возвращает null. Установка менеджера безопасности не поддерживается.
Возвращает:
null
См. также:
  • setSecurityManager(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, и никакие другие позиции целевого массива не будут изменены. (Из-за уже перечисленных ограничений этот абзац фактически применим только к ситуации, когда оба массива имеют типы элементов, являющиеся ссылочными типами.)

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

identityHashCode

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

getProperties

public static Properties getProperties()
Определяет текущие системные свойства.

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

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

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

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

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

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

lineSeparator

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

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

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

setProperties

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

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

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

getProperty

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

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

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

getProperty

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

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

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

setProperty

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

clearProperty

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

getenv

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

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

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

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

getenv

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

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

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

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

Возвращаемая карта, как правило, регистрозависимая на всех платформах.

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

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

getLogger

public static System.Logger getLogger(String name)
Возвращает экземпляр Logger для использования вызывающим классом.
API Note:
Этот метод может отложить вызов метода 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 - код завершения.
См. также:
  • Runtime.exit(int)

gc

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

Вызов метода gc предполагает, что Java Virtual Machine затратит усилия на рециклизацию неиспользуемых объектов, чтобы сделать занимаемую ими память доступной для повторного использования 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 Финализация экземпляров классов
См. также:
  • Runtime.runFinalization()

load

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

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

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

loadLibrary

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

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

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

mapLibraryName

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

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/java/lang/System.html

Spec-Zone.ru

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