Класс URLClassLoader
- Все реализуемые интерфейсы:
Closeable, AutoCloseable
public class URLClassLoader extends SecureClassLoader implements Closeable
jar: (см. JarURLConnection) указывает на JAR-файл. Считается, что любой URL со схемой file:, оканчивающийся символом '/', указывает на каталог. В остальных случаях предполагается, что URL указывает на JAR-файл, который будет открыт при необходимости. Этот загрузчик классов поддерживает загрузку классов и ресурсов из содержимого многовыпускного JAR-файла, на который указывает заданный URL.
- Начиная с версии:
- 1.2
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
URLClassLoader |
Создает новый именованный URLClassLoader для указанных URL. |
URLClassLoader |
Создает новый именованный URLClassLoader для указанных URL, родительского загрузчика классов и URLStreamHandlerFactory. |
URLClassLoader |
Создает новый URLClassLoader для указанных URL, используя системный загрузчик классов в качестве родительского. |
URLClassLoader |
Создает новый URLClassLoader для заданных URL. |
URLClassLoader |
Создает новый URLClassLoader для указанных URL, родительского загрузчика классов и URLStreamHandlerFactory. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
protected void |
addURL |
Добавляет указанный URL в список URL для поиска классов и ресурсов. |
void |
close() |
Закрывает этот URLClassLoader, после чего его нельзя использовать для загрузки новых классов или ресурсов, определенных этим загрузчиком. |
protected Package |
definePackage |
Определяет новый пакет по имени в этом URLClassLoader. |
protected Class |
findClass |
Находит и загружает класс с указанным именем из пути поиска URL. |
URL |
findResource |
Находит ресурс с указанным именем в пути поиска URL. |
Enumeration |
findResources |
Возвращает перечисление URL, представляющих все ресурсы с указанным именем в пути поиска URL. |
protected PermissionCollection |
getPermissions |
Возвращает пустую коллекцию разрешений. |
InputStream |
getResourceAsStream |
Возвращает входной поток для чтения указанного ресурса. |
URL[] |
getURLs() |
Возвращает путь поиска URL для загрузки классов и ресурсов. |
static URLClassLoader |
newInstance |
Создает новый экземпляр URLClassLoader для указанных URL и родительского загрузчика классов по умолчанию. |
static URLClassLoader |
newInstance |
Создает новый экземпляр 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
Подробное описание конструкторов
URLClassLoader
public URLClassLoader(URL[] urls, ClassLoader parent)
jar: указывает на JAR-файл. Предполагается, что URL со схемой file:, оканчивающийся символом '/', указывает на каталог. В остальных случаях предполагается, что URL указывает на JAR-файл, который будет загружен и открыт при необходимости.- Примечание API:
- Если
parentуказано какnull(для загрузчика классов начальной загрузки), нет гарантии, что все классы платформы будут доступны. Сведения о загрузчике классов начальной загрузки и других встроенных загрузчиках классов см. в разделе Встроенные загрузчики классов времени выполнения. - Параметры:
-
urls— URL, из которых загружаются классы и ресурсы -
parent— родительский загрузчик классов для делегирования; может бытьnullдля загрузчика классов начальной загрузки - Исключения:
-
NullPointerException— еслиurlsили любой его элемент равенnull.
URLClassLoader
public URLClassLoader(URL[] urls)
- Параметры:
-
urls— URL, из которых загружаются классы и ресурсы - Исключения:
-
NullPointerException— еслиurlsили любой его элемент равенnull.
URLClassLoader
public URLClassLoader(URL[] urls, ClassLoader parent, URLStreamHandlerFactory factory)
- Примечание 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
В случае URL схем jar: и file: этот метод также закрывает все открытые им файлы. Если в момент вызова метода close другой поток загружает класс, результат этой загрузки не определен.
Метод по возможности пытается закрыть все открытые файлы, перехватывая внутри IOException. Непроверяемые исключения и ошибки не перехватываются. Вызов close для уже закрытого загрузчика не оказывает эффекта.
- Указан в:
-
closeв интерфейсеAutoCloseable - Указан в:
-
closeв интерфейсеCloseable - Исключения:
-
IOException— если при закрытии какого-либо файла, открытого этим загрузчиком классов, произошел IOException. Такие исключения перехватываются внутри метода. Если перехвачено только одно исключение, оно повторно выбрасывается. Если перехвачено несколько исключений, второе и последующие добавляются как подавленные исключения к первому перехваченному исключению, которое затем повторно выбрасывается. - Начиная с версии:
- 1.7
addURL
protected void addURL(URL url)
Если указанный URL равен null или уже содержится в списке URL либо если этот загрузчик закрыт, вызов метода не оказывает эффекта.
- Параметры:
-
url— URL, добавляемый в путь поиска URL
getURLs
public URL[] getURLs()
- Возвращает:
- путь поиска URL для загрузки классов и ресурсов.
findClass
protected Class<?> findClass(String name) throws ClassNotFoundException
- Переопределяет:
-
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)
- Переопределяет:
-
findResourceв классеClassLoader - Параметры:
-
name— имя ресурса - Возвращает:
URLресурса илиnull, если ресурс не найден либо загрузчик закрыт.
findResources
public Enumeration<URL> findResources(String name) throws IOException
- Переопределяет:
-
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)
- Параметры:
-
urls— URL для поиска классов и ресурсов -
parent— родительский загрузчик классов для делегирования - Возвращает:
- полученный загрузчик классов
- Исключения:
-
NullPointerException— еслиurlsили любой его элемент равенnull.
newInstance
public static URLClassLoader newInstance(URL[] urls)
- Параметры:
-
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://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/net/URLClassLoader.html