Spec-Zone.ru › OpenJDK 24

Класс Runtime

java.lang.Object
java.lang.Runtime
public class Runtime extends Object
В каждом приложении Java имеется единственный экземпляр класса Runtime, который позволяет приложению взаимодействовать со средой, в которой оно выполняется. Текущий запуск можно получить из метода getRuntime.

Приложение не может создать свой собственный экземпляр этого класса.

Последовательность завершения

Виртуальная машина Java инициирует последовательность завершения в ответ на одно из нескольких событий:

  1. когда количество активных не-демон-потоков впервые падает до нуля (см. примечание ниже об API вызова JNI);
  2. когда метод Runtime.exit или System.exit вызывается впервые; или
  3. когда происходит какое-либо внешнее событие, например, прерывание или получение сигнала от операционной системы.

В начале последовательности завершения зарегистрированные обработчики завершения запускаются в произвольном порядке. Они выполняются параллельно с любыми демон- или не-демон-потоками, которые были активны в начале последовательности завершения.

После начала последовательности завершения регистрация и отмена регистрации обработчиков завершения с помощью addShutdownHook и removeShutdownHook запрещена. Однако создание и запуск новых потоков разрешены. Новые потоки выполняются параллельно с зарегистрированными обработчиками завершения и любыми демон- или не-демон-потоками, которые уже выполняются.

Последовательность завершения завершается, когда все обработчики завершения завершат свою работу. В этот момент виртуальная машина Java завершает работу, как описано ниже.

Возможна ситуация, когда один или несколько обработчиков завершения не завершают свою работу, например, из-за бесконечного цикла. В этом случае последовательность завершения никогда не закончится. Другие потоки и обработчики завершения продолжают выполняться и могут завершить JVM с помощью метода halt.

Перед началом последовательности завершения программа может запустить обработчик завершения, вызвав его метод start явно. Если это произойдёт, поведение последовательности завершения не определено.

Завершение виртуальной машины Java

JVM завершает работу, когда последовательность завершения завершается или когда вызывается halt. В отличие от exit, метод halt не инициирует последовательность завершения.

При завершении JVM все потоки немедленно лишаются возможности выполнения дальнейшего кода Java. Это относится как к обработчикам завершения, так и к демон- и не-демон-потокам. Это означает, например, что:

  • текущие методы потоков не завершаются нормально или прерываются;
  • finally блоки не выполняются;
  • обработчики необработанных исключений не запускаются; и
  • ресурсы, открытые с помощью try-with-resources, не закрываются;
Примечание о реализации:
Нативный код обычно использует API вызова JNI для управления запуском и завершением JVM. Такой нативный код вызывает функцию JNI_CreateJavaVM для запуска JVM. После этого нативный код вызывает функцию DestroyJavaVM для ожидания завершения этой JVM. Функция DestroyJavaVM отвечает за инициирование последовательности завершения, когда количество активных не-демон-потоков впервые падает до нуля. Когда последовательность завершения завершается и JVM завершает работу, управление возвращается нативному коду, вызвавшему DestroyJavaVM. Это поведение отличается от методов exit или halt. Эти методы обычно завершают процесс ОС, в котором размещена JVM, и не взаимодействуют с API вызова JNI.
См. Спецификацию языка Java:
12.8 Выход из программы
С:
1.0
Внешние спецификации
  • Спецификация интерфейса Java Native
См. также:
  • getRuntime()

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

Модификатор и тип Класс Описание
static final class  Runtime.Version
Представление строки версии реализации платформы Java SE.

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

Модификатор и тип Метод Описание
void addShutdownHook(Thread hook)
Регистрирует новый обработчик завершения виртуальной машины.
int availableProcessors()
Возвращает количество процессоров, доступных виртуальной машине Java.
Process exec(String command)
Устарело.
Этот метод подвержен ошибкам и не должен использоваться, вместо него следует использовать соответствующий метод exec(String[]) или ProcessBuilder.
Process exec(String[] cmdarray)
Выполняет указанную команду и аргументы в отдельном процессе.
Process exec(String[] cmdarray, String[] envp)
Выполняет указанную команду и аргументы в отдельном процессе с указанной средой.
Process exec(String[] cmdarray, String[] envp, File dir)
Выполняет указанную команду и аргументы в отдельном процессе с указанной средой и каталогом.
Process exec(String command, String[] envp)
Устарело.
Этот метод подвержен ошибкам и не должен использоваться, вместо него следует использовать соответствующий метод exec(String[], String[]) или ProcessBuilder.
Process exec(String command, String[] envp, File dir)
Устарело.
Этот метод подвержен ошибкам и не должен использоваться, вместо него следует использовать соответствующий метод exec(String[], String[], File) или ProcessBuilder.
void exit(int status)
Инициирует последовательность завершения виртуальной машины Java.
long freeMemory()
Возвращает количество свободной памяти в виртуальной машине Java.
void gc()
Выполняет сборку мусора в виртуальной машине Java.
static Runtime getRuntime()
Возвращает объект Runtime, связанный с текущим приложением Java.
void halt(int status)
Немедленно завершает виртуальную машину Java.
void load(String filename)
Ограничено.
Загружает нативный библиотеку, указанную в аргументе имени файла.
void loadLibrary(String libname)
Ограничено.
Загружает нативную библиотеку, указанную в аргументе libname.
long maxMemory()
Возвращает максимальный объем памяти, который виртуальная машина Java попытается использовать.
boolean removeShutdownHook(Thread hook)
Отменяет регистрацию ранее зарегистрированного обработчика завершения виртуальной машины.
void runFinalization()
Устарело, для удаления: этот элемент API может быть удален в будущей версии.
Заключительная обработка устарела для удаления.
long totalMemory()
Возвращает общий объем памяти в виртуальной машине Java.
static Runtime.Version version()
Возвращает версию среды выполнения Java в виде Runtime.Version.

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

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

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

getRuntime

public static Runtime getRuntime()
Возвращает объект runtime, связанный с текущим приложением Java. Большинство методов класса Runtime являются методами экземпляра и должны вызываться относительно текущего объекта runtime.
Возвращает:
объект Runtime, связанный с текущим приложением Java.

exit

public void exit(int status)
Инициирует последовательность завершения работы Java Virtual Machine. Этот метод инициирует последовательность завершения (если она еще не инициирована) и затем блокируется неопределенно. Этот метод не возвращает и не выбрасывает исключение; то есть, он не завершается ни нормально, ни внезапно.

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

Успешные вызовы этого метода сериализуются таким образом, что только один вызов инициирует последовательность завершения и завершает VM с заданным кодом состояния. Все остальные вызовы не будут выполнять никаких действий и будут заблокированы неопределенно.

Поскольку успешный вызов этого метода блокируется неопределенно, если он вызван из обработчика завершения работы, он предотвратит завершение этого обработчика. В результате это предотвратит завершение последовательности завершения.

Метод System.exit является стандартным и удобным способом вызова этого метода.

Примечание реализации:
Если системный логгер java.lang.Runtime включен с уровнем ведения журнала Level.DEBUG, то трассировка стека вызова Runtime.exit() будет записана в журнал.
Параметры:
status - Код завершения. По соглашению, ненулевой код состояния указывает на аномальное завершение.
См. также:
  • addShutdownHook(java.lang.Thread)
  • removeShutdownHook(java.lang.Thread)
  • halt(int)

addShutdownHook

public void addShutdownHook(Thread hook)
Регистрирует новый обработчик завершения работы виртуальной машины.

Обработчик завершения работы — это просто инициализированный, но не запущенный поток. Обработчики завершения работы запускаются в начале последовательности завершения завершения работы. Регистрация и дерегистрация обработчиков завершения работы запрещены после начала последовательности завершения работы.

Необработанные исключения обрабатываются в обработчиках завершения работы так же, как и в любом другом потоке, как указано в Thread.UncaughtExceptionHandler. После завершения обработчика необработанных исключений обработчик завершения работы считается завершенным и не отличается от обработчика, который завершился без выбрасывания необработанного исключения.

Примечание API:
Обработчики завершения работы выполняются в деликатное время жизненного цикла виртуальной машины и поэтому должны быть написаны защищенно. В частности, они должны быть потокобезопасными и по возможности избегать тупиков. Они также не должны слепо полагаться на услуги, которые могут зарегистрировать собственные обработчики завершения работы и, следовательно, могут сами находиться в процессе завершения работы. Попытки использования других служб на основе потоков, таких как поток диспетчеризации событий AWT, например, могут привести к тупикам.

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

Параметры:
hook - Инициализированный, но не запущенный объект Thread
Исключения:
IllegalArgumentException - Если тот же обработчик (сравнивается с помощью ==), что и указанный обработчик, уже зарегистрирован или если можно определить, что обработчик уже запущен или уже был запущен
IllegalStateException - Если последовательность завершения уже началась
С момента:
1.3
См. также:
  • removeShutdownHook(java.lang.Thread)
  • halt(int)
  • exit(int)

removeShutdownHook

public boolean removeShutdownHook(Thread hook)
Де-регистрирует ранее зарегистрированный обработчик завершения работы виртуальной машины. Обработчики сравниваются с помощью ==. Регистрация и дерегистрация обработчиков завершения работы запрещены после начала последовательности завершения работы.
Параметры:
hook - обработчик для удаления
Возвращает:
true, если указанный обработчик был ранее зарегистрирован и успешно де-зарегистрирован, false в противном случае.
Исключения:
IllegalStateException - Если последовательность завершения уже началась
С момента:
1.3
См. также:
  • addShutdownHook(java.lang.Thread)
  • exit(int)

halt

public void halt(int status)
Немедленно завершает Java Virtual Machine. Завершение работы Java Virtual Machine безусловное и немедленное. Этот метод не инициирует последовательность завершения завершения работы, а также не ждет завершения последовательности завершения, если она уже в процессе. Вызов этого метода никогда не возвращает значение нормально.
Примечание API:
Этот метод следует использовать с большой осторожностью. Его использование может обойти или нарушить любые действия по очистке, которые должны быть выполнены обработчиками завершения работы, что может привести к повреждению данных. См. раздел завершения выше для других возможных последствий остановки Java Virtual Machine.
Параметры:
status - Код завершения. По соглашению, ненулевой код состояния указывает на аномальное завершение. Если метод exit (эквивалентно System.exit) уже был вызван, этот код состояния перепишет код состояния, переданный этому методу.
С момента:
1.3
См. также:
  • exit(int)
  • addShutdownHook(java.lang.Thread)
  • removeShutdownHook(java.lang.Thread)

exec

@Deprecated(since="18") public Process exec(String command) throws IOException
Устарело.
Этот метод подвержен ошибкам и не должен использоваться, вместо него следует использовать соответствующий метод exec(String[]) или ProcessBuilder. Строка команды разбивается на токены только с помощью пробельных символов. В случае аргумента с вложенным пробелом, например, имени файла, это может привести к проблемам, поскольку токен не включает весь файл.
Выполняет указанную команду в отдельном процессе.

Это вспомогательный метод. Вызов в форме exec(command) ведет себя точно так же, как вызов exec(command, null, null).

Примечание реализации:
В эталонной реализации ведение журнала созданного процесса может быть включено, см. ProcessBuilder.start() для получения подробной информации.
Параметры:
command - указанная системная команда.
Возвращает:
Новый объект Process для управления подпроцессом
Исключения:
IOException - Если произошла ошибка ввода-вывода
NullPointerException - Если command является null
IllegalArgumentException - Если command пусто
См. также:
  • exec(String[], String[], File)
  • ProcessBuilder

exec

@Deprecated(since="18") public Process exec(String command, String[] envp) throws IOException
Устаревший.
Этот метод подвержен ошибкам и не должен использоваться, вместо него следует использовать соответствующий метод exec(String[], String[]) или ProcessBuilder. Строка команды разбивается на токены, используя только пробельные символы. Для аргумента со вложенным пробелом, например, имени файла, это может привести к проблемам, поскольку токен не включает весь путь к файлу.
Выполняет указанную строку команды в отдельном процессе с указанной средой.

Это метод-удобство. Вызов вида exec(command, envp) ведет себя точно так же, как вызов exec(command, envp, null).

Примечание реализации:
В эталонной реализации можно включить протоколирование созданного процесса, см. ProcessBuilder.start() для подробностей.
Параметры:
command - указанная системная команда.
envp - массив строк, каждый элемент которого содержит настройки переменных среды в формате имя=значение, или null, если дочерний процесс должен унаследовать среду текущего процесса.
Возвращает:
Новый объект Process для управления дочерним процессом
Исключения:
IOException - Если произошла ошибка ввода-вывода
NullPointerException - Если command является null, или один из элементов envp является null
IllegalArgumentException - Если command пуста
См. также:
  • exec(String[], String[], File)
  • ProcessBuilder

exec

@Deprecated(since="18") public Process exec(String command, String[] envp, File dir) throws IOException
Устаревший.
Этот метод подвержен ошибкам и не должен использоваться, вместо него следует использовать соответствующий метод exec(String[], String[], File) или ProcessBuilder. Строка команды разбивается на токены, используя только пробельные символы. Для аргумента со вложенным пробелом, например, имени файла, это может привести к проблемам, поскольку токен не включает весь путь к файлу.
Выполняет указанную строку команды в отдельном процессе с указанной средой и рабочей директорией.

Это метод-удобство. Вызов вида exec(command, envp, dir) ведет себя точно так же, как вызов exec(cmdarray, envp, dir), где cmdarray - массив всех токенов в command.

Более точно, строка command разбивается на токены с помощью StringTokenizer, созданного вызовом new StringTokenizer(command) без дальнейшего изменения категорий символов. Токены, полученные токенизатором, затем помещаются в новый массив строк cmdarray в том же порядке.

Примечание реализации:
В эталонной реализации можно включить протоколирование созданного процесса, см. ProcessBuilder.start() для подробностей.
Параметры:
command - указанная системная команда.
envp - массив строк, каждый элемент которого содержит настройки переменных среды в формате имя=значение, или null, если дочерний процесс должен унаследовать среду текущего процесса.
dir - рабочая директория дочернего процесса, или null, если дочерний процесс должен унаследовать рабочую директорию текущего процесса.
Возвращает:
Новый объект Process для управления дочерним процессом
Исключения:
IOException - Если произошла ошибка ввода-вывода
NullPointerException - Если command является null, или один из элементов envp является null
IllegalArgumentException - Если command пуста
С тех пор:
1.3
См. также:
  • ProcessBuilder

exec

public Process exec(String[] cmdarray) throws IOException
Выполняет указанную команду и аргументы в отдельном процессе.

Это метод-удобство. Вызов вида exec(cmdarray) ведет себя точно так же, как вызов exec(cmdarray, null, null).

Примечание реализации:
В эталонной реализации можно включить протоколирование созданного процесса, см. ProcessBuilder.start() для подробностей.
Параметры:
cmdarray - массив, содержащий вызываемую команду и ее аргументы.
Возвращает:
Новый объект Process для управления дочерним процессом
Исключения:
IOException - Если произошла ошибка ввода-вывода
NullPointerException - Если cmdarray является null, или один из элементов cmdarray является null
IndexOutOfBoundsException - Если cmdarray является пустым массивом (имеет длину 0)
См. также:
  • ProcessBuilder

exec

public Process exec(String[] cmdarray, String[] envp) throws IOException
Выполняет указанную команду и аргументы в отдельном процессе с указанной средой.

Это метод-удобство. Вызов вида exec(cmdarray, envp) ведет себя точно так же, как вызов exec(cmdarray, envp, null).

Примечание реализации:
В эталонной реализации можно включить протоколирование созданного процесса, см. ProcessBuilder.start() для подробностей.
Параметры:
cmdarray - массив, содержащий вызываемую команду и ее аргументы.
envp - массив строк, каждый элемент которого содержит настройки переменных среды в формате имя=значение, или null, если дочерний процесс должен унаследовать среду текущего процесса.
Возвращает:
Новый объект Process для управления дочерним процессом
Исключения:
IOException - Если произошла ошибка ввода-вывода
NullPointerException - Если cmdarray является null, или один из элементов cmdarray является null, или один из элементов envp является null
IndexOutOfBoundsException - Если cmdarray является пустым массивом (имеет длину 0)
См. также:
  • ProcessBuilder

exec

public Process exec(String[] cmdarray, String[] envp, File dir) throws IOException
Выполняет указанную команду и аргументы в отдельном процессе со специфицированной средой и рабочей директорией.

Учитывая массив строк cmdarray, представляющие токены командной строки, и массив строк envp, представляющие настройки переменных "среды", этот метод создаёт новый процесс для выполнения указанной команды.

Этот метод проверяет, что cmdarray является допустимой командной строкой операционной системы. Какие команды являются допустимыми, зависит от системы, но по крайней мере, команда должна быть непустым списком непустых строк.

Если envp имеет значение null, подпроцесс наследует настройки среды текущего процесса.

Для запуска процесса на некоторых операционных системах может потребоваться минимальный набор системных переменных среды. В результате подпроцесс может унаследовать дополнительные настройки переменных среды сверх тех, что указаны в среде. Минимальный набор системно-зависимых переменных среды может переопределять значения, предоставленные в среде.

ProcessBuilder.start() сейчас является предпочтительным способом запуска процесса с изменённой средой.

Рабочая директория нового подпроцесса задаётся параметром dir. Если dir имеет значение null, подпроцесс наследует текущую рабочую директорию текущего процесса.

Запуск процесса операционной системы сильно зависит от системы. Среди многих возможных проблем:

  • Файл программы операционной системы не найден.
  • Доступ к файлу программы запрещён.
  • Рабочая директория не существует.

В таких случаях будет выброшено исключение. Точный характер исключения зависит от системы, но он всегда будет подклассом IOException.

Если операционная система не поддерживает создание процессов, будет выброшено исключение UnsupportedOperationException.

Implementation Note:
В эталонной реализации можно включить логирование созданного процесса, см. ProcessBuilder.start() для деталей.
Parameters:
cmdarray - массив, содержащий команду и её аргументы.
envp - массив строк, каждый элемент которого содержит настройки переменной среды в формате имя=значение, или null, если подпроцесс должен унаследовать среду текущего процесса.
dir - рабочая директория подпроцесса, или null, если подпроцесс должен унаследовать рабочую директорию текущего процесса.
Returns:
Новый объект Process для управления подпроцессом
Throws:
UnsupportedOperationException - Если операционная система не поддерживает создание процессов.
IOException - Если произошла ошибка ввода-вывода
NullPointerException - Если cmdarray имеет значение null, или один из элементов cmdarray имеет значение null, или один из элементов envp имеет значение null
IndexOutOfBoundsException - Если cmdarray - пустой массив (имеет длину 0)
Since:
1.3
See Also:
  • ProcessBuilder

availableProcessors

public int availableProcessors()
Возвращает количество процессоров, доступных виртуальной машине Java.

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

Returns:
максимальное количество процессоров, доступных виртуальной машине; никогда не меньше одного
Since:
1.4

freeMemory

public long freeMemory()
Возвращает количество свободной памяти в виртуальной машине Java. Вызов метода gc может привести к увеличению значения, возвращаемого freeMemory.
Returns:
приблизительное количество памяти, в байтах, доступное для будущих выделенных объектов.

totalMemory

public long totalMemory()
Возвращает общее количество памяти в виртуальной машине Java. Значение, возвращаемое этим методом, может изменяться со временем, в зависимости от среды хоста.

Обратите внимание, что количество памяти, необходимое для хранения объекта любого данного типа, может зависеть от реализации.

Returns:
общее количество памяти, в байтах, доступное для текущих и будущих объектов.

maxMemory

public long maxMemory()
Возвращает максимальное количество памяти, которое виртуальная машина Java попытается использовать. Если нет внутреннего ограничения, возвращается значение Long.MAX_VALUE.
Returns:
максимальное количество памяти, в байтах, которое виртуальная машина попытается использовать
Since:
1.4

gc

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

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

Название gc обозначает "сборщик мусора". Виртуальная машина Java выполняет этот процесс рециклирования автоматически по мере необходимости в отдельном потоке, даже если метод gc не вызывается явно.

Метод System.gc() является стандартным и удобным способом вызова этого метода.

runFinalization

@Deprecated(since="18", forRemoval=true) public void runFinalization()
Deprecated, for removal: This API element is subject to removal in a future version.
Финализация устарела и будет удалена. См. Object.finalize() для дополнительной информации и способов миграции.

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

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

Виртуальная машина выполняет процесс финализации автоматически по мере необходимости в отдельном потоке, если метод runFinalization не вызывается явно.

Метод System.runFinalization() является стандартным и удобным способом вызова этого метода.

See Java Language Specification:
12.6 Finalization of Class Instances
See Also:
  • Object.finalize()

load

public void load(String filename)
load это ограниченный метод платформы Java.
Программы могут использовать load только при включенном доступе к ограниченным методам.
Ограниченные методы небезопасны и, при неправильном использовании, могут привести к сбою JVM или к повреждению памяти.
Загружает системную библиотеку, указанную в аргументе filename. Аргумент filename должен быть абсолютным путем. (например Runtime.getRuntime().load("/home/avh/lib/libX11.so");). Если аргумент filename, после удаления всех платформно-специфичных префиксов, путей и расширений, указывает на библиотеку, имя которой, например, L, и системная библиотека с именем L статически связана с VM, тогда вызывается функция JNI_OnLoad_L, экспортируемая этой библиотекой, вместо попытки загрузить динамическую библиотеку. Библиотека с указанным именем не обязательно должна существовать в файловой системе. Более подробную информацию см. в спецификации JNI. В противном случае, аргумент filename отображается на системную библиотеку в зависимости от реализации.

Это аналогично методу loadLibrary(String)ОГРАНИЧЕННЫЙ, но он принимает в качестве аргумента общее имя файла, а не только имя библиотеки, что позволяет загружать любые файлы с кодом нативных методов.

Метод System.load(String)ОГРАНИЧЕННЫЙ является стандартным и удобным способом вызова этого метода.

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

loadLibrary

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

Метод System.loadLibrary(String)ОГРАНИЧЕННЫЙ является стандартным и удобным способом вызова этого метода. Если нативные методы должны быть использованы в реализации класса, стандартная стратегия заключается в том, чтобы поместить код нативных методов в файл библиотеки (назовем его LibFile), а затем поместить статический инициализатор:

 static { System.loadLibrary("LibFile"); }
 
внутри объявления класса. Когда класс загружается и инициализируется, необходимое нативное реализация для нативных методов также загружается.

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

Параметры:
libname - имя библиотеки.
Исключения:
UnsatisfiedLinkError - если аргумент libname содержит путь к файлу, нативная библиотека не статически связана с VM или библиотека не может быть отображена на нативную библиотеку хост-системой.
NullPointerException - если libname является null
IllegalCallerException - если вызывающий элемент находится в модуле, в котором не включён доступ к нативным методам.
Внешние спецификации
  • Спецификация Java Native Interface

version

public static Runtime.Version version()
Возвращает версию Java Runtime Environment в виде Runtime.Version.
Возвращает:
версия Runtime.Version Java Runtime Environment
С:
9

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

Spec-Zone.ru

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