Spec-Zone.ru › OpenJDK 24

Класс URLClassLoader

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

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

С:
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)
Возвращает пустой набор разрешений (Permission collection).
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-файл, который будет загружен и открыт по мере необходимости.
Параметры:
urls - URL-адреса, из которых будут загружаться классы и ресурсы
parent - родительский загрузчик классов для делегирования
Исключения:
NullPointerException - если urls или любой из его элементов является null.

URLClassLoader

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

URLClassLoader

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

URLClassLoader

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

definePackage

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

findResource

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 - если произошла ошибка ввода-вывода

getPermissions

protected PermissionCollection getPermissions(CodeSource codesource)
Возвращает пустой набор разрешений.
Переопределяет:
getPermissions в классе SecureClassLoader
Параметры:
codesource - CodeSource
Возвращает:
пустой набор разрешений
Исключение:
NullPointerException - если codesource является null.

newInstance

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

newInstance

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

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

Spec-Zone.ru

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