Spec-Zone.ru › OpenJDK 21

Класс MLet

java.lang.Object
java.lang.ClassLoader
java.security.SecureClassLoader
java.net.URLClassLoader
javax.management.loading.MLet
Все реализованные интерфейсы:
Closeable, Externalizable, Serializable, AutoCloseable, MLetMBean, MBeanRegistration
Непосредственные известные подклассы:
PrivateMLet
@Deprecated(since="20", forRemoval=true) public class MLet extends URLClassLoader implements MLetMBean, MBeanRegistration, Externalizable
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Этот API является частью элементов управления управлением (m-lets), которая является устаревшей функцией, позволяющей загружать удалённые MBean. Эта функция не может использоваться без менеджера безопасности, который устарел и подлежит удалению в будущей версии. Следовательно, этот API также устарел и подлежит удалению. Замены нет.
Позволяет создать и зарегистрировать один или несколько MBean в сервере MBean, полученных из удалённого URL. M-let — это сокращение для элемента управления управлением. Сервис m-let делает это, загружая текстовый файл m-let, который содержит информацию об MBean, которые нужно получить. Информация о каждом MBean указывается в отдельном экземпляре тега, называемого тегом MLET. Путь к текстовому файлу m-let задаётся URL.

Тег MLET имеет следующий синтаксис:

<MLET
CODE = class | OBJECT = serfile
ARCHIVE = "archiveList"
[CODEBASE = codebaseURL]
[NAME = mbeanname]
[VERSION = version]
>
[arglist]
</MLET>

где:

CODE = class
Этот атрибут указывает полное имя класса Java, включая имя пакета, MBean, который необходимо получить. Компилированный .class файл MBean должен находиться в одном из файлов .jar, указанных атрибутом ARCHIVE. Должен присутствовать либо CODE, либо OBJECT.
OBJECT = serfile
Этот атрибут указывает файл .ser, содержащий сериализованное представление MBean, который необходимо получить. Этот файл должен находиться в одном из файлов .jar, указанных атрибутом ARCHIVE. Если файл .jar содержит иерархию каталогов, укажите путь к файлу в этой иерархии. В противном случае соответствие не будет найдено. Должен присутствовать либо CODE, либо OBJECT.
ARCHIVE = "archiveList"
Этот обязательный атрибут указывает один или несколько файлов .jar содержащих MBean или другие ресурсы, используемые получаемым MBean. Один из файлов .jar должен содержать файл, указанный атрибутами CODE или OBJECT Если archivelist содержит более одного файла:
  • Каждый файл должен быть отделён от следующего запятой (,).
  • archivelist должен быть заключён в двойные кавычки.
Все файлы .jar в archivelist должны храниться в каталоге, указанном в URL кодовой базы.
CODEBASE = codebaseURL
Этот необязательный атрибут указывает URL кодовой базы получаемого MBean. Он идентифицирует каталог, содержащий файлы .jar указанные атрибутом ARCHIVE. Укажите этот атрибут только если файлы .jar не находятся в той же директории, что и текстовый файл m-let. Если этот атрибут не указан, используется базовый URL текстового файла m-let.
NAME = mbeanname
Этот необязательный атрибут указывает имя объекта, которое будет назначено экземпляру MBean, когда сервис m-let его регистрирует. Если mbeanname начинается с символа двоеточия (:), часть домена имени объекта — это домен сервера MBean по умолчанию, возвращаемый методом MBeanServer.getDefaultDomain().
VERSION = version
Этот необязательный атрибут указывает номер версии MBean и связанных файлов .jar для получения. Этот номер версии можно использовать для указания, что файлы .jar загружаются с сервера, чтобы обновить те, что хранятся локально в кэше, при следующем загрузке текстового файла m-let. version должен быть серией неотрицательных целых десятичных чисел, разделённых точками.
arglist
Этот необязательный атрибут указывает список одного или нескольких параметров для MBean, подлежащего созданию. Этот список описывает параметры, которые будут переданы конструктору MBean. Используйте следующий синтаксис для указания каждого элемента в arglist:
<ARG TYPE=argumentType VALUE=value>
где:
  • argumentType — тип аргумента, который будет передан в качестве параметра конструктору MBean.

Тип аргументов в списке аргументов должен быть примитивным типом Java или базовым типом Java (java.lang.Boolean, java.lang.Byte, java.lang.Short, java.lang.Long, java.lang.Integer, java.lang.Float, java.lang.Double, java.lang.String).

При загрузке текстового файла m-let создаётся экземпляр каждого MBean, указанного в файле, и он регистрируется.

Сервис m-let расширяет java.net.URLClassLoader и может использоваться для загрузки удалённых классов и jar-файлов в виртуальной машине агента.

Примечание - Загрузчик классов MLet использует MBeanServerFactory.getClassLoaderRepository(javax.management.MBeanServer) для загрузки классов, которые не были найдены в загруженных jar-файлах.

С тех пор:
1.5
См. также:
  • Сериализованная форма

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

Конструктор Описание
MLet()
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Создаёт новый MLet с родительским ClassLoader по умолчанию.
MLet(URL[] urls)
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Создаёт новый MLet для указанных URL-адресов с родительским ClassLoader по умолчанию.
MLet(URL[] urls, boolean delegateToCLR)
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Создаёт новый MLet для указанных URL-адресов с родительским ClassLoader по умолчанию.
MLet(URL[] urls, ClassLoader parent)
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Создаёт новый MLet для заданных URL-адресов.
MLet(URL[] urls, ClassLoader parent, boolean delegateToCLR)
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Создаёт новый MLet для заданных URL-адресов.
MLet(URL[] urls, ClassLoader parent, URLStreamHandlerFactory factory)
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Создаёт новый MLet для указанных URL-адресов, родительского ClassLoader и URLStreamHandlerFactory.
MLet(URL[] urls, ClassLoader parent, URLStreamHandlerFactory factory, boolean delegateToCLR)
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Создаёт новый MLet для указанных URL-адресов, родительского ClassLoader и URLStreamHandlerFactory.

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

Модификатор и тип Метод Описание
void addURL(String url)
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Добавляет указанный URL-адрес в список URL-адресов для поиска классов и ресурсов.
void addURL(URL url)
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Добавляет указанный URL-адрес в список URL-адресов для поиска классов и ресурсов.
protected URL check(String version, URL codebase, String jarfile, MLetContent mlet)
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Этот метод должен быть переопределён при расширении данного сервиса для поддержки кэширования и версионирования.
protected Class<?> findClass(String name)
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Основной метод для class loader, который переопределяется.
protected String findLibrary(String libname)
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Возвращает абсолютный путь к файлу нативной библиотеки.
String getLibraryDirectory()
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Получает текущий каталог, используемый загрузчиком библиотек для хранения нативных библиотек перед их загрузкой в память.
Set<Object> getMBeansFromURL(String url)
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Загружает текстовый файл с тегами MLET, определяющими MBeans, которые должны быть добавлены в сервер MBean.
Set<Object> getMBeansFromURL(URL url)
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Загружает текстовый файл с тегами MLET, определяющими MBeans, которые должны быть добавлены в сервер MBean.
URL[] getURLs()
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Возвращает путь поиска URL-адресов для загрузки классов и ресурсов.
Class<?> loadClass(String name, ClassLoaderRepository clr)
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Загружает класс, используя заданный ClassLoaderRepository, если класс не найден в URL-адресах данного MLet.
void postDeregister()
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Позволяет m-let выполнить все необходимые операции после того, как он был аннулирован на сервере MBean.
void postRegister(Boolean registrationDone)
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Позволяет m-let выполнить все необходимые операции после того, как он был зарегистрирован на сервере MBean или после того, как регистрация не удалась.
void preDeregister()
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Позволяет m-let выполнить все необходимые операции перед тем, как он будет аннулирован сервером MBean.
ObjectName preRegister(MBeanServer server, ObjectName name)
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Позволяет m-let выполнить все необходимые операции перед тем, как он будет зарегистрирован на сервере MBean.
void readExternal(ObjectInput in)
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Восстанавливает содержимое этого MLet из заданного ObjectInput.
void setLibraryDirectory(String libdir)
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Устанавливает каталог, используемый загрузчиком библиотек для хранения нативных библиотек перед их загрузкой в память.
void writeExternal(ObjectOutput out)
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Сохраняет содержимое этого MLet в заданном ObjectOutput.

Методы, унаследованные от класса java.net.URLClassLoader

close, definePackage, findResource, findResources, getPermissions, getResourceAsStream, newInstance, newInstance

Методы, унаследованные от класса java.security.SecureClassLoader

defineClass, defineClass

Методы, унаследованные от класса java.lang.ClassLoader

clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLoadedClass, findResource, findSystemClass, getClassLoadingLock, getDefinedPackage, getDefinedPackages, getName, getPackage, getPackages, getParent, getPlatformClassLoader, getResource, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, getUnnamedModule, isRegisteredAsParallelCapable, loadClass, loadClass, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners

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

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

Методы, унаследованные от интерфейса javax.management.loading.MLetMBean

getResource, getResourceAsStream, getResources

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

MLet

public MLet()
Устаревший, для удаления: Этот элемент API может быть удалён в будущей версии.
Создаёт новый MLet с использованием родительского ClassLoader по умолчанию.

MLet

public MLet(URL[] urls)
Устаревший, для удаления: Этот элемент API может быть удалён в будущей версии.
Создаёт новый MLet для указанных URL-адресов с использованием родительского ClassLoader по умолчанию. URL-адреса будут проверяться в указанном порядке для поиска классов и ресурсов после проверки родительского ClassLoader.
Параметры:
urls - URL-адреса для загрузки классов и ресурсов.

MLet

public MLet(URL[] urls, ClassLoader parent)
Устаревший, для удаления: Этот элемент API может быть удалён в будущей версии.
Создаёт новый MLet для заданных URL-адресов. URL-адреса будут проверяться в указанном порядке для поиска классов и ресурсов после проверки указанного родительского ClassLoader. Родительский ClassLoader будет использован для делегирования.
Параметры:
urls - URL-адреса для загрузки классов и ресурсов.
parent - Родительский ClassLoader для делегирования.

MLet

public MLet(URL[] urls, ClassLoader parent, URLStreamHandlerFactory factory)
Устаревший, для удаления: Этот элемент API может быть удалён в будущей версии.
Создаёт новый MLet для указанных URL-адресов, родительского ClassLoader и URLStreamHandlerFactory. Родительский ClassLoader будет использован для делегирования. Factory аргумент будет использован для получения обработчиков протоколов при создании новых URL-адресов.
Параметры:
urls - URL-адреса для загрузки классов и ресурсов.
parent - Родительский ClassLoader для делегирования.
factory - URLStreamHandlerFactory для использования при создании URL-адресов.

MLet

public MLet(URL[] urls, boolean delegateToCLR)
Устаревший, для удаления: Этот элемент API может быть удалён в будущей версии.
Создаёт новый MLet для указанных URL-адресов с использованием родительского ClassLoader по умолчанию. URL-адреса будут проверяться в указанном порядке для поиска классов и ресурсов после проверки родительского ClassLoader.
Параметры:
urls - URL-адреса для загрузки классов и ресурсов.
delegateToCLR - True, если при отсутствии класса в родительском ClassLoader или URL-адресах, MLet должен делегировать обращение к ClassLoaderRepository содержащего MBeanServer.

MLet

public MLet(URL[] urls, ClassLoader parent, boolean delegateToCLR)
Устаревший, для удаления: Этот элемент API может быть удалён в будущей версии.
Создаёт новый MLet для заданных URL-адресов. URL-адреса будут проверяться в указанном порядке для поиска классов и ресурсов после проверки указанного родительского ClassLoader. Родительский ClassLoader будет использован для делегирования.
Параметры:
urls - URL-адреса для загрузки классов и ресурсов.
parent - Родительский ClassLoader для делегирования.
delegateToCLR - True, если при отсутствии класса в родительском ClassLoader или URL-адресах, MLet должен делегировать обращение к ClassLoaderRepository содержащего MBeanServer.

MLet

public MLet(URL[] urls, ClassLoader parent, URLStreamHandlerFactory factory, boolean delegateToCLR)
Устаревший, для удаления: Этот элемент API может быть удалён в будущей версии.
Создаёт новый MLet для указанных URL-адресов, родительского ClassLoader и URLStreamHandlerFactory. Родительский ClassLoader будет использован для делегирования. Factory аргумент будет использован для получения обработчиков протоколов при создании новых URL-адресов.
Параметры:
urls - URL-адреса для загрузки классов и ресурсов.
parent - Родительский ClassLoader для делегирования.
factory - URLStreamHandlerFactory для использования при создании URL-адресов.
delegateToCLR - True, если при отсутствии класса в родительском ClassLoader или URL-адресах, MLet должен делегировать обращение к ClassLoaderRepository содержащего MBeanServer.

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

addURL

public void addURL(URL url)
Устаревший, для удаления: Этот элемент API может быть удалён в будущей версии.
Добавляет указанный URL-адрес в список URL-адресов для поиска классов и ресурсов.
Определено в:
addURL в интерфейсе MLetMBean
Переопределяет:
addURL в классе URLClassLoader
Параметры:
url - добавляемый URL-адрес в путь поиска

addURL

public void addURL(String url) throws ServiceNotFoundException
Устаревший, для удаления: Этот элемент API может быть удалён в будущей версии.
Добавляет указанный URL-адрес в список URL-адресов для поиска классов и ресурсов.
Определено в:
addURL в интерфейсе MLetMBean
Параметры:
url - URL-адрес для добавления.
Исключения:
ServiceNotFoundException - указанный URL-адрес имеет неправильный формат.

getURLs

public URL[] getURLs()
Устаревший, для удаления: Этот элемент API может быть удалён в будущей версии.
Возвращает путь поиска URL-адресов для загрузки классов и ресурсов. Включает исходный список URL-адресов, заданных в конструкторе, а также любые URL-адреса, добавленные методом addURL().
Определено в:
getURLs в интерфейсе MLetMBean
Переопределяет:
getURLs в классе URLClassLoader
Возвращает:
путь поиска URL-адресов для загрузки классов и ресурсов.

getMBeansFromURL

public Set<Object> getMBeansFromURL(URL url) throws ServiceNotFoundException
Устаревший, для удаления: Этот элемент API может быть удалён в будущей версии.
Загружает текстовый файл, содержащий теги MLET, которые определяют MBeans, которые должны быть добавлены в сервер MBean. Местоположение текстового файла задаётся URL-адресом. MBeans, указанные в файле MLET, будут созданы и зарегистрированы в сервере MBean.
Определено в:
getMBeansFromURL в интерфейсе MLetMBean
Параметры:
url - URL текстового файла, загружаемый как объект URL.
Возвращает:
Множество, содержащее одну запись на каждый тег MLET в загруженном текстовом файле m-let. Каждая запись указывает либо ObjectInstance для созданного MBean, либо объект throwable (т.е. ошибку или исключение), если MBean не удалось создать.
Исключения:
ServiceNotFoundException - произошла одна из следующих ошибок: файл m-let не содержит тег MLET, файл m-let не найден, обязательный атрибут тега MLET не указан, значение url равно null.
IllegalStateException - MLet MBean не зарегистрирован в MBeanServer.

getMBeansFromURL

public Set<Object> getMBeansFromURL(String url) throws ServiceNotFoundException
Устаревший, для удаления: Этот элемент API может быть удалён в будущей версии.
Загружает текстовый файл, содержащий теги MLET, которые определяют MBeans, которые должны быть добавлены в сервер MBean. Местоположение текстового файла задаётся URL-адресом. MBeans, указанные в файле MLET, будут созданы и зарегистрированы в сервере MBean.
Определено в:
getMBeansFromURL в интерфейсе MLetMBean
Параметры:
url - URL текстового файла, загружаемый как строка.
Возвращает:
Множество, содержащее одну запись на каждый тег MLET в загруженном текстовом файле m-let. Каждая запись указывает либо ObjectInstance для созданного MBean, либо объект throwable (т.е. ошибку или исключение), если MBean не удалось создать.
Исключения:
ServiceNotFoundException - произошла одна из следующих ошибок: файл m-let не содержит тег MLET, файл m-let не найден, обязательный атрибут тега MLET не указан, URL имеет неправильный формат.
IllegalStateException - MLet MBean не зарегистрирован в MBeanServer.

getLibraryDirectory

public String getLibraryDirectory()
Deprecated, for removal: This API element is subject to removal in a future version.
Получает текущую директорию, используемую загрузчиком библиотек для хранения нативных библиотек перед их загрузкой в память.
Specified by:
getLibraryDirectory in interface MLetMBean
Returns:
Текущую директорию, используемую загрузчиком библиотек.
Throws:
UnsupportedOperationException - если эта реализация не поддерживает хранение нативных библиотек таким образом.
See Also:
  • setLibraryDirectory(java.lang.String)

setLibraryDirectory

public void setLibraryDirectory(String libdir)
Deprecated, for removal: This API element is subject to removal in a future version.
Устанавливает директорию, используемую загрузчиком библиотек для хранения нативных библиотек перед их загрузкой в память.
Specified by:
setLibraryDirectory in interface MLetMBean
Parameters:
libdir - Директория, используемая загрузчиком библиотек.
Throws:
UnsupportedOperationException - если эта реализация не поддерживает хранение нативных библиотек таким образом.
See Also:
  • getLibraryDirectory()

preRegister

public ObjectName preRegister(MBeanServer server, ObjectName name) throws Exception
Deprecated, for removal: This API element is subject to removal in a future version.
Позволяет m-лету выполнить любые необходимые операции перед регистрацией в сервере MBean. Если ObjectName равно null, m-лет предоставляет имя по умолчанию для своей регистрации <defaultDomain>:type=MLet
Specified by:
preRegister in interface MBeanRegistration
Parameters:
server - Сервер MBean, в котором будет зарегистрирован m-лет.
name - Имя объекта m-лета.
Returns:
Имя зарегистрированного m-лета.
Throws:
Exception - Эта исключение должно быть перехвачено сервером MBean и повторно выброшено как MBeanRegistrationException.

postRegister

public void postRegister(Boolean registrationDone)
Deprecated, for removal: This API element is subject to removal in a future version.
Позволяет m-лету выполнить любые необходимые операции после регистрации в сервере MBean или после того, как регистрация завершилась неудачей.
Specified by:
postRegister in interface MBeanRegistration
Parameters:
registrationDone - Указывает, была ли m-лет успешно зарегистрирована в сервере MBean. Значение false означает, что фаза регистрации завершилась неудачей.

preDeregister

public void preDeregister() throws Exception
Deprecated, for removal: This API element is subject to removal in a future version.
Позволяет m-лету выполнить необходимые операции перед его отрегистрацией сервером MBean.
Specified by:
preDeregister in interface MBeanRegistration
Throws:
Exception - Это исключение должно быть перехвачено сервером MBean и повторно выброшено как MBeanRegistrationException.

postDeregister

public void postDeregister()
Deprecated, for removal: This API element is subject to removal in a future version.
Позволяет m-лету выполнить любые необходимые операции после его отрегистрации из сервера MBean.
Specified by:
postDeregister in interface MBeanRegistration

writeExternal

public void writeExternal(ObjectOutput out) throws IOException, UnsupportedOperationException
Deprecated, for removal: This API element is subject to removal in a future version.

Сохраняет содержимое этого MLet в указанный ObjectOutput. Не все реализации поддерживают этот метод. Те, что не поддерживают, выбрасывают UnsupportedOperationException. Подкласс может переопределить этот метод, чтобы поддержать его или изменить формат записываемых данных.

Формат записываемых данных не определен, но если реализация поддерживает writeExternal(java.io.ObjectOutput), она также должна поддерживать readExternal(java.io.ObjectInput) таким образом, чтобы то, что записывается первым, могло быть считано вторым.

Specified by:
writeExternal in interface Externalizable
Parameters:
out - Поток вывода объектов для записи.
Throws:
IOException - Если произошла проблема во время записи.
UnsupportedOperationException - Если эта реализация не поддерживает эту операцию.

readExternal

public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException, UnsupportedOperationException
Deprecated, for removal: This API element is subject to removal in a future version.

Восстанавливает содержимое этого MLet из указанного ObjectInput. Не все реализации поддерживают этот метод. Те, что не поддерживают, выбрасывают UnsupportedOperationException. Подкласс может переопределить этот метод, чтобы поддержать его или изменить формат считываемых данных.

Формат считываемых данных не определен, но если реализация поддерживает readExternal(java.io.ObjectInput), она также должна поддерживать writeExternal(java.io.ObjectOutput) таким образом, чтобы то, что записывается последним, могло быть считано первым.

Specified by:
readExternal in interface Externalizable
Parameters:
in - Поток ввода объектов для чтения.
Throws:
IOException - если произошла проблема во время чтения.
ClassNotFoundException - если класс для восстанавливаемого объекта не найден.
UnsupportedOperationException - если эта реализация не поддерживает эту операцию.

loadClass

public Class<?> loadClass(String name, ClassLoaderRepository clr) throws ClassNotFoundException
Deprecated, for removal: This API element is subject to removal in a future version.

Загрузить класс, используя указанный ClassLoaderRepository, если класс не найден в URL этого MLet. Указанный ClassLoaderRepository может быть null, в этом случае ClassNotFoundException возникает немедленно, если класс не найден в URL этого MLet.

Parameters:
name - Имя класса, который мы хотим загрузить.
clr - ClassLoaderRepository, который будет использоваться для поиска данного класса, если он не найден в этом ClassLoader. Может быть null.
Returns:
Полученный объект Class.
Throws:
ClassNotFoundException - Указанный класс не может быть найден ни в этом ClassLoader, ни в заданном ClassLoaderRepository.

findClass

protected Class<?> findClass(String name) throws ClassNotFoundException
Deprecated, for removal: This API element is subject to removal in a future version.
Это основной метод для загрузчиков классов, который переопределяется.
Overrides:
findClass in class URLClassLoader
Parameters:
name - Имя класса.
Returns:
Полученный объект Class.
Throws:
ClassNotFoundException - Указанный класс не найден.

findLibrary

protected String findLibrary(String libname)
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Возвращает абсолютный путь к файлу нативной библиотеки. JVM вызывает этот метод, чтобы найти нативные библиотеки, относящиеся к классам, загруженным с помощью этого загрузчика классов. Библиотеки ищутся в файлах JAR сначала только по имени нативной библиотеки, а если не найдены, то по имени нативной библиотеки вместе с архитектурно-специфичным именем пути (OSName/OSArch/OSVersion/lib/nativelibname), т.е.

библиотека stat на Solaris SPARC 5.7 будет искаться в файле JAR как:

  1. libstat.so
  2. SunOS/sparc/5.7/lib/libstat.so
библиотека stat на Windows NT 4.0 будет искаться в файле JAR как:
  1. stat.dll
  2. WindowsNT/x86/4.0/lib/stat.dll

Более точно, пусть nativelibname будет результатом вызова System.mapLibraryName(libname). Затем следующие имена ищутся в файлах JAR в указанном порядке:
nativelibname
<os.name>/<os.arch>/<os.version>/lib/nativelibname
где <X> означает System.getProperty(X) с удаленными пробелами в результате, а / обозначает символ разделителя файлов (File.separator).

Если этот метод возвращает null, т.е. библиотеки не найдены ни в одном из файлов JAR, загруженных с помощью этого загрузчика классов, JVM ищет библиотеку по пути, указанному в свойстве java.library.path.

Overrides:
findLibrary в классе ClassLoader
Параметры:
libname - Имя библиотеки.
Возвращает:
Абсолютный путь к нативной библиотеке.
См. также:
  • System.loadLibrary(String)
  • System.mapLibraryName(String)

check

protected URL check(String version, URL codebase, String jarfile, MLetContent mlet) throws Exception
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии.

Этот метод необходимо переопределить при расширении этой службы для поддержки кэширования и версионирования. Он вызывается из getMBeansFromURL, когда версия, базовая директория и файл JAR извлечены из файла MLet и могут быть использованы для проверки возможности загрузки данного MBean или для замены данного URL на другой.

По умолчанию этот метод возвращает codebase без изменений.

Параметры:
version - Номер версии файла .jar хранящегося локально.
codebase - Базовый URL удаленного файла .jar.
jarfile - Имя файла .jar, который необходимо загрузить.
mlet - Экземпляр MLetContent , представляющий тег MLET.
Возвращает:
Базовую директорию для использования при загрузке MBean. Возвращаемое значение не должно быть null.
Исключения:
Exception - если MBean не должен загружаться по какой-либо причине. Исключение будет добавлено в набор, возвращаемый getMBeansFromURL.

© 1993, 2023, 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/21/docs/api/java.management/javax/management/loading/MLet.html

Spec-Zone.ru

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