Spec-Zone.ru › OpenJDK 27

Класс AttachProvider

java.lang.Object
com.sun.tools.attach.spi.AttachProvider
public abstract class AttachProvider extends Object
Класс поставщика подключения для подключения к виртуальной машине Java.

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

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

Поставщик подключения идентифицируется с помощью name и type. Имя обычно соответствует поставщику виртуальной машины, но это не обязательно. Например, реализация JDK от Oracle поставляется с поставщиками подключения, использующими имя пакета "sun" (по историческим причинам). Тип обычно соответствует механизму подключения. Например, реализация, использующая механизм межпроцессного взаимодействия Doors, может использовать тип "doors". Имя и тип служат для идентификации поставщиков в средах, где установлено несколько поставщиков.

Реализации AttachProvider загружаются и создаются при первом вызове метода providers. Этот метод пытается загрузить все реализации поставщика, установленные на платформе.

Все методы этого класса безопасно использовать из нескольких параллельно работающих потоков.

Начиная с версии:
1.6

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

AttachProvider()
Модификатор Конструктор Описание
protected
Инициализирует новый экземпляр этого класса.

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

Модификатор и тип Метод Описание
VirtualMachine attachVirtualMachine(VirtualMachineDescriptor vmd)
Подключается к виртуальной машине Java.
abstract VirtualMachine attachVirtualMachine(String id)
Подключается к виртуальной машине Java.
abstract List<VirtualMachineDescriptor> listVirtualMachines()
Перечисляет виртуальные машины Java, известные этому поставщику.
abstract String name()
Возвращает имя этого поставщика.
static List<AttachProvider> providers()
Возвращает список установленных поставщиков подключения.
abstract String type()
Возвращает тип этого поставщика.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли этот объект некоторому другому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Финализация устарела и подлежит удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени.

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

AttachProvider

protected AttachProvider()
Инициализирует новый экземпляр этого класса.

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

name

public abstract String name()
Возвращает имя этого поставщика.
Возвращает:
Имя этого поставщика

type

public abstract String type()
Возвращает тип этого поставщика.
Возвращает:
Тип этого поставщика

attachVirtualMachine

public abstract VirtualMachine attachVirtualMachine(String id) throws AttachNotSupportedException, IOException
Подключается к виртуальной машине Java.

Виртуальная машина Java идентифицируется абстрактным идентификатором. Характер этого идентификатора зависит от платформы, однако во многих случаях это строковое представление идентификатора процесса (или pid).

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

Параметры:
id — абстрактный идентификатор виртуальной машины Java.
Возвращает:
VirtualMachine, представляющий целевую виртуальную машину.
Выбрасывает:
AttachNotSupportedException — если идентификатор невозможно проанализировать, если он соответствует несуществующей виртуальной машине Java или виртуальной машине Java, к которой этот поставщик не может подключиться.
IOException — если возникает другая ошибка ввода-вывода
NullPointerException — если id является null

attachVirtualMachine

public VirtualMachine attachVirtualMachine(VirtualMachineDescriptor vmd) throws AttachNotSupportedException, IOException
Подключается к виртуальной машине Java.

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

Параметры:
vmd — дескриптор виртуальной машины
Возвращает:
VirtualMachine, представляющий целевую виртуальную машину.
Выбрасывает:
AttachNotSupportedException — если метод provider() дескриптора возвращает поставщика, отличного от этого поставщика, либо если дескриптор не соответствует виртуальной машине Java, к которой этот поставщик может подключиться.
IOException — если возникает другая ошибка ввода-вывода
NullPointerException — если vmd является null

listVirtualMachines

public abstract List<VirtualMachineDescriptor> listVirtualMachines()
Перечисляет виртуальные машины Java, известные этому поставщику.

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

Возвращает:
Список дескрипторов виртуальных машин, описывающих известные этому поставщику виртуальные машины Java (список может быть пустым).

providers

public static List<AttachProvider> providers()
Возвращает список установленных поставщиков подключения.

Поставщик AttachProvider считается установленным на платформе, если:

  • Он установлен в JAR-файле, видимом для загрузчика классов, определяющего тип AttachProvider (обычно это system class loader, но это не обязательно).
  • JAR-файл содержит конфигурацию поставщика с именем com.sun.tools.attach.spi.AttachProvider в каталоге ресурсов META-INF/services.
  • В файле конфигурации поставщика указано полное имя класса реализации AttachProvider.

Формат файла конфигурации поставщика: одно полное имя класса в каждой строке. Пробелы и символы табуляции вокруг каждого имени класса, а также пустые строки игнорируются. Символ комментария — '#' (0x23); в каждой строке все символы после первого символа комментария игнорируются. Файл должен быть закодирован в UTF-8.

Реализации AttachProvider загружаются и создаются (с помощью конструктора без аргументов) при первом вызове этого метода. Список, возвращаемый при первом вызове, является списком поставщиков. При последующих вызовах возвращается список тех же поставщиков. Список нельзя изменить.

Возвращает:
Список установленных поставщиков подключения.

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её дочерних компаний в США и других странах.
Авторские права © 1993, 2026, 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.

Spec-Zone.ru

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