Spec-Zone.ru › OpenJDK 21

Класс URLClassLoader

java.lang.Object
java.lang.ClassLoader
java.security.SecureClassLoader
java.net.URLClassLoader
Все реализуемые интерфейсы:
Closeable, AutoCloseable
Непосредственные подклассы:
MLet
public class URLClassLoader extends SecureClassLoader implements Closeable
Этот класс загрузчик используется для загрузки классов и ресурсов из пути поиска URL, ссылающихся на JAR-файлы и каталоги. Любой URL со схемой jar: (см. JarURLConnection) предполагается, что ссылается на JAR-файл. Любой URL со схемой file:, заканчивающийся на '/', предполагается, что ссылается на каталог. В противном случае URL предполагается, что ссылается на JAR-файл, который будет открыт по мере необходимости.

Этот класс загрузчик поддерживает загрузку классов и ресурсов из содержимого JAR-файла с несколькими версиями, на который ссылается данный URL.

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

Классы, которые загружаются, по умолчанию имеют разрешение только на доступ к URL, указанным при создании URLClassLoader.

С тех пор:
1.2

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

Конструктор Описание
URLClassLoader(String name, URL[] urls, ClassLoader parent)
Создает новый именованный URLClassLoader для указанных URL.
URLClassLoader(String name, URL[] urls, ClassLoader parent, URLStreamHandlerFactory factory)
Создает новый именованный URLClassLoader для указанных URL, родительского загрузчика классов и URLStreamHandlerFactory.
URLClassLoader(URL[] urls)
Создает новый URLClassLoader для указанных URL с использованием родительского загрузчика делегирования по умолчанию ClassLoader.
URLClassLoader(URL[] urls, ClassLoader parent)
Создает новый URLClassLoader для заданных URL.
URLClassLoader(URL[] urls, ClassLoader parent, URLStreamHandlerFactory factory)
Создает новый URLClassLoader для указанных URL, родительского загрузчика классов и URLStreamHandlerFactory.

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

Модификатор и тип Метод Описание
protected void addURL(URL url)
Добавляет указанный URL в список URL для поиска классов и ресурсов.
void close()
Закрывает этот URLClassLoader, чтобы он больше не мог использоваться для загрузки новых классов или ресурсов, определенных этим загрузчиком.
protected Package definePackage(String name, Manifest man, URL url)
Определяет новый пакет по имени в этом URLClassLoader.
protected Class<?> findClass(String name)
Находит и загружает класс с указанным именем из пути поиска URL.
URL findResource(String name)
Находит ресурс с указанным именем в пути поиска URL.
Enumeration<URL> findResources(String name)
Возвращает перечисление URL, представляющих все ресурсы в пути поиска URL с заданным именем.
protected PermissionCollection getPermissions(CodeSource codesource)
Возвращает разрешения для данного объекта codesource.
InputStream getResourceAsStream(String name)
Возвращает поток ввода для чтения указанного ресурса.
URL[] getURLs()
Возвращает путь поиска URL для загрузки классов и ресурсов.
static URLClassLoader newInstance(URL[] urls)
Создает новый экземпляр URLClassLoader для указанных URL и родительского загрузчика классов по умолчанию.
static URLClassLoader newInstance(URL[] urls, ClassLoader parent)
Создает новый экземпляр URLClassLoader для указанных URL и родительского загрузчика классов.

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

defineClass, defineClass

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

clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, 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

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

URLClassLoader

public URLClassLoader(URL[] urls, ClassLoader parent)
Создаёт новый URLClassLoader для заданных URL-адресов. URL-адреса будут проверяться в указанном порядке для классов и ресурсов после первой проверки в указанном родительском загрузчике классов. Любой URL-адрес со схемой jar: предполагается, что он ссылается на файл JAR. Любой URL-адрес со схемой file:, заканчивающийся '/', предполагается, что он ссылается на каталог. В противном случае URL-адрес предполагается, что он ссылается на файл JAR, который будет загружен и открыт по мере необходимости.

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

Параметры:
urls - URL-адреса, с которых следует загружать классы и ресурсы
parent - родительский загрузчик классов для делегирования
Исключения:
SecurityException - если существует менеджер безопасности, и его метод checkCreateClassLoader не разрешает создание загрузчика классов.
NullPointerException - если urls или любой из его элементов является null.
См. также:
  • SecurityManager.checkCreateClassLoader()

URLClassLoader

public URLClassLoader(URL[] urls)
Создаёт новый URLClassLoader для указанных URL-адресов, используя по умолчанию родительский загрузчик ClassLoader. URL-адреса будут проверяться в указанном порядке для классов и ресурсов после первой проверки в родительском загрузчике классов. Любой URL-адрес, заканчивающийся '/', предполагается, что он ссылается на каталог. В противном случае URL-адрес предполагается, что он ссылается на файл JAR, который будет загружен и открыт по мере необходимости.

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

Параметры:
urls - URL-адреса, с которых следует загружать классы и ресурсы
Исключения:
SecurityException - если существует менеджер безопасности, и его метод checkCreateClassLoader не разрешает создание загрузчика классов.
NullPointerException - если urls или любой из его элементов является null.
См. также:
  • SecurityManager.checkCreateClassLoader()

URLClassLoader

public URLClassLoader(URL[] urls, ClassLoader parent, URLStreamHandlerFactory factory)
Создаёт новый URLClassLoader для указанных URL-адресов, родительского загрузчика классов и URLStreamHandlerFactory. Аргумент parent будет использоваться как родительский загрузчик классов для делегирования. Аргумент factory будет использоваться как фабрика обработчиков потоков для получения обработчиков протоколов при создании новых URL-адресов jar.

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

Параметры:
urls - URL-адреса, с которых следует загружать классы и ресурсы
parent - родительский загрузчик классов для делегирования
factory - URLStreamHandlerFactory для использования при создании URL-адресов
Исключения:
SecurityException - если существует менеджер безопасности, и его метод checkCreateClassLoader не разрешает создание загрузчика классов.
NullPointerException - если urls или любой из его элементов является null.
См. также:
  • SecurityManager.checkCreateClassLoader()

URLClassLoader

public URLClassLoader(String name, URL[] urls, ClassLoader parent)
Создаёт новый именованный URLClassLoader для указанных URL-адресов. URL-адреса будут проверяться в указанном порядке для классов и ресурсов после первой проверки в указанном родительском загрузчике классов. Любой URL-адрес, заканчивающийся '/', предполагается, что он ссылается на каталог. В противном случае URL-адрес предполагается, что он ссылается на файл JAR, который будет загружен и открыт по мере необходимости.
Параметры:
name - имя загрузчика классов; или null если не именован
urls - URL-адреса, с которых следует загружать классы и ресурсы
parent - родительский загрузчик классов для делегирования
Исключения:
IllegalArgumentException - если заданное имя пустое.
NullPointerException - если urls или любой из его элементов является null.
SecurityException - если установлен менеджер безопасности, и его метод SecurityManager.checkCreateClassLoader() не разрешает создание загрузчика классов.
С:
9

URLClassLoader

public URLClassLoader(String name, URL[] urls, ClassLoader parent, URLStreamHandlerFactory factory)
Создаёт новый именованный URLClassLoader для указанных URL-адресов, родительского загрузчика классов и URLStreamHandlerFactory. Аргумент parent будет использоваться как родительский загрузчик классов для делегирования. Аргумент factory будет использоваться как фабрика обработчиков потоков для получения обработчиков протоколов при создании новых URL-адресов jar.
Параметры:
name - имя загрузчика классов; или null если не именован
urls - URL-адреса, с которых следует загружать классы и ресурсы
parent - родительский загрузчик классов для делегирования
factory - URLStreamHandlerFactory для использования при создании URL-адресов
Исключения:
IllegalArgumentException - если заданное имя пустое.
NullPointerException - если urls или любой из его элементов является null.
SecurityException - если установлен менеджер безопасности, и его метод checkCreateClassLoader не разрешает создание загрузчика классов.
С:
9

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

getResourceAsStream

public InputStream getResourceAsStream(String name)
Возвращает поток ввода для чтения указанного ресурса. Если этот загрузчик закрыт, то любые открытые этим методом ресурсы будут закрыты.

Порядок поиска описан в документации для ClassLoader.getResource(String).

Переопределяет:
getResourceAsStream в классе ClassLoader
Параметры:
name - Имя ресурса
Возвращает:
Поток ввода для чтения ресурса, или null если ресурс не найден
Исключения:
NullPointerException - Если name является null
С:
1.7

close

public void close() throws IOException
Закрывает этот URLClassLoader, чтобы он больше не мог использоваться для загрузки новых классов или ресурсов, определённых этим загрузчиком. Классы и ресурсы, определённые любыми родителями этого загрузчика в иерархии делегирования, по-прежнему доступны. Кроме того, любые уже загруженные классы или ресурсы по-прежнему доступны.

В случае URL-адресов jar: и file: он также закрывает все файлы, которые были открыты им. Если другой поток загружает класс, когда вызывается метод close, то результат этой загрузки неопределён.

Метод прилагает максимальные усилия для закрытия всех открытых файлов, перехватывая IOException внутри. Непроверенные исключения и ошибки не перехватываются. Вызов close для уже закрытого загрузчика не оказывает никакого эффекта.

Определено:
close в интерфейсе AutoCloseable
Определено:
close в интерфейсе Closeable
Исключения:
IOException - если закрытие любого файла, открытого этим загрузчиком классов, привело к IOException. Все такие исключения перехватываются внутри. Если перехвачено только одно исключение, оно перебрасывается повторно. Если перехвачено более одного исключения, то второе и последующие исключения добавляются в качестве подавленных исключений первого перехваченного исключения, которое затем перебрасывается повторно.
SecurityException - если установлен менеджер безопасности, и он отказывается от RuntimePermission("closeClassLoader")
С:
1.7

addURL

protected void addURL(URL url)
Добавляет указанный URL-адрес в список URL-адресов для поиска классов и ресурсов.

Если указанный URL-адрес является null или уже присутствует в списке URL-адресов, или если этот загрузчик закрыт, то вызов этого метода не имеет эффекта.

Параметры:
url - URL-адрес, который нужно добавить в путь поиска URL-адресов

getURLs

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

findClass

protected Class<?> findClass(String name) throws ClassNotFoundException
Находит и загружает класс с указанным именем из пути поиска URL-адресов. Любые URL-адреса, ссылающиеся на файлы JAR, загружаются и открываются по мере необходимости, пока класс не будет найден.
Переопределяет:
findClass в классе ClassLoader
Параметры:
name - имя класса
Возвращает:
результирующий класс
Исключения:
ClassNotFoundException - если класс не может быть найден, или если загрузчик закрыт.
NullPointerException - если name является null.

определитьПакет

protected Package definePackage(String name, Manifest man, URL url)
Определяет новый пакет по имени в этом URLClassLoader. Атрибуты, содержащиеся в указанном Manifest, будут использованы для получения информации о версии пакета и его герметизации. Для герметичных пакетов дополнительный URL указывает URL-адрес исходного кода, из которого был загружен пакет.
Параметры:
name - имя пакета
man - Manifest, содержащий информацию о версии пакета и его герметизации
url - URL-адрес исходного кода пакета, или null, если он отсутствует
Возвращает:
новый объект Package
Выбрасывает:
IllegalArgumentException - если имя пакета уже определено этим загрузчиком классов

найтиРесурс

public URL findResource(String name)
Находит ресурс с указанным именем в пути поиска URL.
Переопределяет:
findResource в классе ClassLoader
Параметры:
name - имя ресурса
Возвращает:
объект URL для ресурса, или null если ресурс не найден или загрузчик закрыт.

найтиРесурсы

public Enumeration<URL> findResources(String name) throws IOException
Возвращает перечисление URL-адресов, представляющих все ресурсы в пути поиска URL, имеющие указанное имя.
Переопределяет:
findResources в классе ClassLoader
Параметры:
name - имя ресурса
Возвращает:
Перечисление Enumeration URL. Если загрузчик закрыт, перечисление не содержит элементов.
Выбрасывает:
IOException - если произошла ошибка ввода-вывода

получитьРазрешения

protected PermissionCollection getPermissions(CodeSource codesource)
Возвращает разрешения для данного объекта codesource. Реализация этого метода сначала вызывает super.getPermissions, а затем добавляет разрешения на основе URL-адреса codesource.

Если протокол этого URL-адреса равен "jar", то предоставленное разрешение основано на разрешении, необходимом для URL-адреса JAR-файла.

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

Если протокол не равен "file", то предоставляется разрешение на подключение к узлу URL и принятие подключений от него.

Переопределяет:
getPermissions в классе SecureClassLoader
Параметры:
codesource - объект codesource
Возвращает:
разрешения, предоставленные объекту codesource
Выбрасывает:
NullPointerException - если codesource является null.

создатьЭкземпляр

public static URLClassLoader newInstance(URL[] urls, ClassLoader parent)
Создает новый экземпляр URLClassLoader для указанных URL-адресов и родительского загрузчика классов. Если установлена система безопасности, метод loadClass возвращаемого URLClassLoader этим методом вызовет метод SecurityManager.checkPackageAccess перед загрузкой класса.
Параметры:
urls - URL-адреса для поиска классов и ресурсов
parent - родительский загрузчик классов для делегирования
Возвращает:
результирующий загрузчик классов
Выбрасывает:
NullPointerException - если urls или любой из его элементов является null.

создатьЭкземпляр

public static URLClassLoader newInstance(URL[] urls)
Создает новый экземпляр URLClassLoader для указанных URL-адресов и по умолчанию родительского загрузчика классов. Если установлена система безопасности, метод loadClass возвращаемого URLClassLoader этим методом вызовет метод SecurityManager.checkPackageAccess перед загрузкой класса.
Параметры:
urls - URL-адреса для поиска классов и ресурсов
Возвращает:
результирующий загрузчик классов
Выбрасывает:
NullPointerException - если urls или любой из его элементов является null.

© 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.base/java/net/URLClassLoader.html

Spec-Zone.ru

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