Spec-Zone.ru › OpenJDK 25

Класс 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, используя системный загрузчик классов в качестве родительского.
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)
Возвращает пустую коллекцию разрешений.
InputStream getResourceAsStream(String name)
Возвращает входной поток для чтения указанного ресурса.
URL[] getURLs()
Возвращает путь поиска URL для загрузки классов и ресурсов.
static URLClassLoader newInstance(URL[] urls)
Создает новый экземпляр URLClassLoader для указанных URL и родительского загрузчика классов по умолчанию.
static URLClassLoader newInstance(URL[] urls, ClassLoader parent)
Создает новый экземпляр URLClassLoader для указанных URL и родительского загрузчика классов.

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

defineClass, defineClass

Методы, объявленные в классе 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

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

URLClassLoader

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

URLClassLoader

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

URLClassLoader

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

findResources

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.

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры рабочего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/net/URLClassLoader.html

Spec-Zone.ru

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