Spec-Zone.ru › OpenJDK 25

Класс System

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

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

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

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

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

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

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

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

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

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

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.

См. также:
  • Console
  • stdin.encoding

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(SecurityManager)

currentTimeMillis

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

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

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

nanoTime

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

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

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

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

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

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

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

if (System.nanoTime() - startTime >= timeoutNanos) ...
вместо
if (System.nanoTime() >= startTime + timeoutNanos) ...
из-за возможности числового переполнения.
Возвращает:
текущее значение высокоточного источника времени работающей виртуальной машины 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(). Хеш-код нулевой ссылки равен нулю.
Параметры:
x — объект, для которого вычисляется hashCode
Возвращает:
значение hashCode
Начиная с версии:
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; её значение — элемент функции версии среды выполнения
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, приводит к неопределённому поведению.
Возвращает:
системные свойства
См. также:
  • setProperties(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:
Изменение стандартного системного свойства может привести к непредсказуемым результатам, если не указано иное. Подробности см. в разделе getProperties.
Параметры:
key — имя системного свойства.
Возвращает:
строковое значение системного свойства или null, если свойства с таким ключом нет.
Выбрасывает:
NullPointerException — если key равен null.
IllegalArgumentException — если key пуст.
См. также:
  • setProperty(String, String)
  • getProperties()

getProperty

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

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

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

setProperty

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

clearProperty

public static String clearProperty(String key)
Удаляет системное свойство, указанное заданным ключом.
Примечание к API:
Изменение стандартного системного свойства может привести к непредсказуемым результатам, если не указано иное. Подробнее см. в описании метода getProperties.
Параметры:
key — имя удаляемого системного свойства.
Возвращает:
предыдущее строковое значение системного свойства или null, если свойства с таким ключом не было.
Вызывает:
NullPointerException — если key равно null.
IllegalArgumentException — если key пусто.
С версии:
1.5
См. также:
  • getProperty(String)
  • setProperty(String, 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()
Возвращает неизменяемое представление текущей системной среды в виде строковой карты. Среда представляет собой зависящее от системы отображение имён в значения, которое передаётся от родительских процессов дочерним.

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

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

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

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

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

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

getLogger

public static System.Logger getLogger(String name)
Возвращает экземпляр Logger для использования вызывающим кодом.
Примечание к API:
Этот метод может отложить вызов метода LoggerFinder.getLogger для создания фактического регистратора, предоставляемого подсистемой ведения журналов, например, чтобы обеспечить получение регистраторов во время инициализации системы.
Требования к реализации:
Экземпляры, возвращаемые этим методом, перенаправляют сообщения регистраторам, полученным вызовом LoggerFinder.getLogger(name, module), где module — модуль вызывающего кода. Если System.getLogger вызывается из контекста, в котором в стеке нет кадра вызывающего кода (например, при прямом вызове из присоединённого потока JNI), выбрасывается IllegalCallerException. Чтобы получить регистратор в таком контексте, используйте вспомогательный класс, который будет неявно определён как вызывающий код, или получите регистратор через системный LoggerFinder. Обратите внимание, что последний способ может привести к немедленной инициализации базовой системы ведения журналов.
Параметры:
name — имя регистратора.
Возвращает:
экземпляр System.Logger, который может использовать вызывающий класс.
Вызывает:
NullPointerException — если name равно null.
IllegalCallerException — если в стеке нет кадра вызывающего кода Java.
С версии:
9

getLogger

public static System.Logger getLogger(String name, ResourceBundle bundle)
Возвращает локализуемый экземпляр Logger для использования вызывающим кодом. Возвращаемый регистратор будет использовать предоставленный пакет ресурсов для локализации сообщений.
Примечание к API:
Этот метод предназначен для использования после полной инициализации системы. Он может вызвать немедленную загрузку и инициализацию службы System.LoggerFinder, что может привести к проблемам, если среда выполнения Java ещё не готова к инициализации конкретной реализации службы. Системным классам, которые могут быть загружены на раннем этапе загрузки и которым необходимо записывать локализованные сообщения, следует создавать регистратор с помощью 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. Этот метод запускает последовательность завершения работы (если она ещё не запущена), а затем блокирует выполнение на неопределённый срок. Метод не возвращает управление и не выбрасывает исключение, то есть не завершается ни обычным, ни аварийным образом.

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

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

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

gc

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

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

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

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

runFinalization

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

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

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

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

Runtime.getRuntime().runFinalization()
См. Спецификацию языка Java:
12.6 Финализация экземпляров классов
См. также:
  • Runtime.runFinalization()

load

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

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

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

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)RESTRICTED

mapLibraryName

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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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

Spec-Zone.ru

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