Класс 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 может быть удалён в будущей версии. Изначально этот метод устанавливал общесистемный менеджер безопасности. |
Подробное описание полей
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()
Обсуждение небольших расхождений, которые могут возникать между «компьютерным временем» и всемирным координированным временем (UTC), см. в описании класса Date.
- Возвращает:
- разницу в миллисекундах между текущим временем и полуночью 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 - Возвращает:
- значение 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; её значение — элемент функции версии среды выполнения |
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; её значение — элемент функции версии среды выполнения |
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(). Если виртуальная машина Java работает с отключённой или удалённой финализацией, объектов, ожидающих финализации, не будет, поэтому этот метод ничего не делает.
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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/System.html