Класс 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 |
Копирует массив из указанного исходного массива, начиная с указанной позиции, в указанную позицию массива назначения. |
static String |
clearProperty |
Удаляет системное свойство, указанное заданным ключом. |
static Console |
console() |
Возвращает уникальный объект Console, связанный с текущей виртуальной машиной Java, если такой объект существует. |
static long |
currentTimeMillis() |
Возвращает текущее время в миллисекундах. |
static void |
exit |
Запускает последовательность завершения работы виртуальной машины Java. |
static void |
gc() |
Запускает сборщик мусора в виртуальной машине Java. |
static Map |
getenv() |
Возвращает немодифицируемое представление текущей среды системы в виде карты строк. |
static String |
getenv |
Получает значение указанной переменной среды. |
static System.Logger |
getLogger |
Возвращает экземпляр Logger для использования вызывающим кодом. |
static System.Logger |
getLogger |
Возвращает локализуемый экземпляр Logger для использования вызывающим кодом. |
static Properties |
getProperties() |
Определяет текущие системные свойства. |
static String |
getProperty |
Получает системное свойство, указанное заданным ключом. |
static String |
getProperty |
Получает системное свойство, указанное заданным ключом. |
static SecurityManager |
getSecurityManager() |
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии. Изначально этот метод возвращал общесистемный менеджер безопасности. |
static int |
identityHashCode |
Возвращает для заданного объекта тот же хеш-код, который вернул бы метод hashCode() по умолчанию, независимо от того, переопределяет ли класс заданного объекта метод hashCode(). |
static Channel |
inheritedChannel() |
Возвращает канал, унаследованный от объекта, создавшего эту виртуальную машину Java. |
static String |
lineSeparator() |
Возвращает системно-зависимую строку-разделитель строк. |
static void |
load |
Ограниченный доступ. Загружает собственную библиотеку, указанную аргументом filename. |
static void |
loadLibrary |
Ограниченный доступ. Загружает собственную библиотеку, указанную аргументом libname. |
static String |
mapLibraryName |
Преобразует имя библиотеки в строку, зависящую от платформы и представляющую собственную библиотеку. |
static long |
nanoTime() |
Возвращает текущее значение источника времени с высоким разрешением работающей виртуальной машины Java в наносекундах. |
static void |
runFinalization() |
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии. Финализация признана устаревшей и будет удалена. |
static void |
setErr |
Переназначает «стандартный» поток вывода ошибок. |
static void |
setIn |
Переназначает «стандартный» поток ввода. |
static void |
setOut |
Переназначает «стандартный» поток вывода. |
static void |
setProperties |
Задаёт системные свойства, используя аргумент Properties. |
static String |
setProperty |
Задаёт системное свойство, указанное заданным ключом. |
static void |
setSecurityManager |
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии. Изначально этот метод задавал общесистемный менеджер безопасности. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создаёт и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли какой-либо другой объект этому объекту. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии. Финализация устарела и подлежит удалению в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает значение хеш-кода для этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова метода notify или interrupt. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова метода notify или interrupt, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова метода notify или interrupt, либо до истечения заданного промежутка реального времени. |
Подробное описание полей
in
public static final InputStream in
stdin.encoding, для преобразования входных байтов в символьные данные.- Примечание API:
- Обычно для чтения символьных данных
System.inоборачивают в объект, который выполняет обработку кодировки символов. После этого для дальнейшего чтения следует использовать только объект-обёртку; продолжение непосредственной работы сSystem.inприводит к неопределённому поведению.Вот два распространённых примера. Использование
InputStreamReader:Или использованиеnew InputStreamReader(System.in, System.getProperty("stdin.encoding"));Scanner:new Scanner(System.in, System.getProperty("stdin.encoding"));Для обработки интерактивного ввода рассмотрите возможность использования
Console. - См. также:
out
public static final PrintStream out
stdout.encoding. Для простых автономных приложений Java обычно используют следующий способ вывода строки данных:
System.out.println(data)
См. методы println класса PrintStream.
- См. также:
err
public static final PrintStream err
Обычно он соответствует выводу на экран или другому месту назначения, заданному средой узла или пользователем. По соглашению этот поток используется для отображения сообщений об ошибках или другой информации, требующей немедленного внимания пользователя, даже если основной поток вывода — значение переменной out — перенаправлен в файл или другое место назначения, которое обычно не отслеживается постоянно. Кодировка, используемая при преобразовании символов в байты, эквивалентна 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
inheritedChannel системного объекта SelectorProvider по умолчанию. Помимо каналов, связанных с сетью и описанных в inheritedChannel, в будущем этот метод может возвращать и другие виды каналов.
- Возвращает:
- Унаследованный канал, если он есть, иначе
null. - Вызывает:
-
IOException— если возникает ошибка ввода-вывода - Начиная с версии:
- 1.5
setSecurityManager
@Deprecated(since="17", forRemoval=true) public static void setSecurityManager(SecurityManager sm)
UnsupportedOperationException. Установка менеджера безопасности не поддерживается.- Параметры:
-
sm— игнорируется - Вызывает:
-
UnsupportedOperationException— всегда - См. также:
getSecurityManager
@Deprecated(since="17", forRemoval=true) public static SecurityManager getSecurityManager()
null. Установка менеджера безопасности не поддерживается.- Возвращает:
null- См. также:
currentTimeMillis
public static long currentTimeMillis()
Описание класса Date содержит обсуждение небольших расхождений, которые могут возникнуть между «компьютерным временем» и всемирным координированным временем (UTC).
- Возвращает:
- разницу в миллисекундах между текущим временем и полуночью 1 января 1970 года по UTC.
- См. также:
nanoTime
public static long nanoTime()
Этот метод обеспечивает точность до наносекунд, но не обязательно разрешение в наносекунду (то есть частоту изменения значения) — гарантируется только, что разрешение не хуже, чем у 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)
- Параметры:
-
x— объект, для которого необходимо вычислить hashCode - Возвращает:
- хеш-код
- Начиная с версии:
- 1.1
- См. также:
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 версии среды выполнения |
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 версии среды выполнения |
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 | Название кодировки символов, определяемое средой узла и настройками пользователя. Установка этого системного свойства в командной строке не оказывает влияния. |
stdin.encoding | Название кодировки символов для System.in. Среду выполнения Java можно запустить, установив системное свойство в значение UTF-8. Запуск со свойством, установленным в другое значение, приводит к неопределённому поведению. |
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, приводит к неопределённому поведению. - Возвращает:
- системные свойства
- См. также:
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— новые системные свойства. - См. также:
getProperty
public static String getProperty(String key)
Если текущего набора системных свойств нет, сначала создаётся и инициализируется набор тем же способом, что и для метода getProperties.
- Примечание API:
- Изменение стандартного системного свойства может привести к непредсказуемым результатам, если не указано иное. Подробности см. в разделе getProperties.
- Параметры:
-
key— имя системного свойства. - Возвращает:
- строковое значение системного свойства или
null, если свойства с таким ключом нет. - Вызывает:
-
NullPointerException— еслиkeyравноnull. -
IllegalArgumentException— еслиkeyпусто. - См. также:
getProperty
public static String getProperty(String key, String def)
Если текущего набора системных свойств нет, сначала создаётся и инициализируется набор тем же способом, что и для метода getProperties.
- Параметры:
-
key— имя системного свойства. -
def— значение по умолчанию. - Возвращает:
- строковое значение системного свойства или значение по умолчанию, если свойства с таким ключом нет.
- Вызывает:
-
NullPointerException— еслиkeyравноnull. -
IllegalArgumentException— еслиkeyпусто. - См. также:
setProperty
public static String setProperty(String key, String value)
- Примечание API:
- Изменение стандартного системного свойства может привести к непредсказуемым результатам, если не указано иное. Подробности см. в описании getProperties.
- Параметры:
-
key— имя системного свойства. -
value— значение системного свойства. - Возвращает:
- предыдущее значение системного свойства или
null, если оно отсутствовало. - Вызывает:
-
NullPointerException— еслиkeyилиvalueравноnull. -
IllegalArgumentException— еслиkeyпусто. - Начиная с:
- 1.2
- См. также:
clearProperty
public static String clearProperty(String key)
- Примечание API:
- Изменение стандартного системного свойства может привести к непредсказуемым результатам, если не указано иное. Подробности см. в описании метода getProperties.
- Параметры:
-
key— имя системного свойства, которое нужно удалить. - Возвращает:
- предыдущее строковое значение системного свойства или
null, если свойства с таким ключом не было. - Вызывает:
-
NullPointerException— еслиkeyравноnull. -
IllegalArgumentException— еслиkeyпусто. - Начиная с:
- 1.5
- См. также:
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
public static Map<String,String> getenv()
Если система не поддерживает переменные среды, возвращается пустая карта.
Возвращаемая карта никогда не содержит ключей или значений null. Попытка проверить наличие ключа или значения null приведет к исключению NullPointerException. Попытка проверить наличие ключа или значения, не относящегося к типу String, приведет к исключению ClassCastException.
Возвращаемая карта и ее представления коллекций могут не соответствовать общему контракту методов Object.equals(Object) и Object.hashCode().
На всех платформах возвращаемая карта обычно чувствительна к регистру.
При передаче информации дочернему процессу Java системные свойства обычно предпочтительнее переменных среды.
- Возвращает:
- среду в виде карты имен переменных и их значений
- Начиная с:
- 1.5
- См. также:
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 еще не готова инициализировать конкретную реализацию службы. Системным классам, которые могут быть загружены на раннем этапе последовательности загрузки и которым необходимо записывать локализованные сообщения, следует создавать регистратор с помощью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)
Аргумент используется в качестве кода состояния. По соглашению ненулевой код состояния указывает на аварийное завершение.
Вызов System.exit(n) фактически эквивалентен вызову:
Runtime.getRuntime().exit(n)
- Примечание по реализации:
- Запуск последовательности завершения работы регистрируется методом
Runtime.exit(int). - Параметры:
-
status— код завершения. - См. также:
gc
public static void gc()
Вызов метода gc предлагает виртуальной машине Java приложить усилия для переработки неиспользуемых объектов, чтобы освободить занимаемую ими память для повторного использования виртуальной машиной Java. Когда управление возвращается из вызова метода, виртуальная машина Java приложила максимальные усилия для освобождения пространства, занятого всеми неиспользуемыми объектами. Не гарантируется, что эти усилия приведут к переработке какого-либо определенного количества неиспользуемых объектов, освобождению какого-либо определенного объема пространства или завершатся к какому-либо определенному моменту — до возврата из метода или вообще. Также не гарантируется, что эти усилия позволят определить изменение достижимости какого-либо определенного количества объектов или что какое-либо определенное количество объектов Reference будет очищено и помещено в очередь.
Вызов System.gc() фактически эквивалентен вызову:
Runtime.getRuntime().gc()
- См. также:
runFinalization
@Deprecated(since="18", forRemoval=true) public static void runFinalization()
Object.finalize(). Если JVM работает с отключенной или удаленной финализацией, объекты, ожидающие финализации, отсутствуют, поэтому этот метод ничего не делает.
finalize объектов, которые были признаны отброшенными, но методы finalize которых еще не были запущены. Когда управление возвращается из вызова метода, виртуальная машина Java приложила максимальные усилия для завершения всех ожидающих финализаций. Вызов System.runFinalization() фактически эквивалентен вызову:
Runtime.getRuntime().runFinalization()
- См. Спецификацию языка Java:
- 12.6 Финализация экземпляров классов
- См. также:
load
public static void load(String filename)
load — это ограниченный метод платформы Java. load только при включенном доступе к ограниченным методам.Вызов System.load(name) фактически эквивалентен вызову:
Runtime.getRuntime().load(name)
- Параметры:
-
filename— файл для загрузки. - Вызывает:
-
UnsatisfiedLinkError— если имя файла не является абсолютным путем, собственная библиотека не связана статически с виртуальной машиной или хост-система не может преобразовать библиотеку в образ собственной библиотеки. -
NullPointerException— еслиfilenameравноnull -
IllegalCallerException— если вызывающий код находится в модуле, для которого не включен доступ к собственному коду. - Внешние спецификации
- См. также:
loadLibrary
public static void loadLibrary(String libname)
loadLibrary — это ограниченный метод платформы Java. loadLibrary только при включенном доступе к ограниченным методам.libname. Аргумент libname не должен содержать платформенный префикс, расширение файла или путь. Если собственная библиотека с именем libname статически связана с виртуальной машиной, вызывается экспортируемая библиотекой функция JNI_OnLoad_libname. Дополнительные сведения см. в спецификации JNI. В противном случае библиотека с именем libname загружается из системного расположения библиотек и преобразуется в образ собственной библиотеки способом, зависящим от реализации. Вызов System.loadLibrary(name) фактически эквивалентен вызову
Runtime.getRuntime().loadLibrary(name)
- Параметры:
-
libname— имя библиотеки. - Вызывает:
-
UnsatisfiedLinkError— если аргумент libname содержит путь к файлу, собственная библиотека не связана статически с виртуальной машиной или хост-система не может преобразовать библиотеку в образ собственной библиотеки. -
NullPointerException— еслиlibnameравноnull -
IllegalCallerException— если вызывающий код находится в модуле, для которого не включен доступ к собственному коду. - Внешние спецификации
- См. также:
mapLibraryName
public static String mapLibraryName(String libname)
- Параметры:
-
libname— имя библиотеки. - Возвращает:
- имя собственной библиотеки, зависящее от платформы.
- Вызывает:
-
NullPointerException— еслиlibnameравноnull - Начиная с:
- 1.2
- См. также:
© 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.