Класс 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 | Модификатор и тип | Метод | Описание |
|---|---|---|
protected final Class |
defineClass |
Преобразует массив байтов в экземпляр класса Class с необязательным CodeSource. |
protected final Class |
defineClass |
Преобразует ByteBuffer в экземпляр класса Class с необязательным CodeSource. |
Методы, объявленные в классе 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 | Модификатор и тип | Метод | Описание |
|---|---|---|
void |
clearAssertionStatus() |
Устанавливает для этого загрузчика классов состояние утверждений по умолчанию в значение false и отбрасывает все настройки утверждений для пакетов и классов, связанные с загрузчиком классов. |
protected final Class |
defineClass |
Устарел. |
protected final Class |
defineClass |
Преобразует массив байтов в экземпляр класса Class. |
protected final Class |
defineClass |
Преобразует массив байтов в экземпляр класса Class с указанным ProtectionDomain. |
protected final Class |
defineClass |
|
protected Package |
definePackage |
Определяет пакет с указанным именем в этом ClassLoader. |
protected Class |
findClass |
Находит класс с указанным двоичным именем в модуле, определенном для этого загрузчика классов. |
protected String |
findLibrary |
Возвращает абсолютное имя пути к нативной библиотеке. |
protected final Class |
findLoadedClass |
Возвращает класс с указанным двоичным именем, если виртуальная машина Java зарегистрировала этот загрузчик как инициирующий загрузчик класса с таким двоичным именем. |
protected URL |
findResource |
Возвращает URL ресурса в модуле, определенном для этого загрузчика классов. |
protected final Class |
findSystemClass |
Находит класс с указанным двоичным именем, загружая его при необходимости. |
protected Object |
getClassLoadingLock |
Возвращает объект блокировки для операций загрузки классов. |
final Package |
getDefinedPackage |
Возвращает Package с указанным именем, определенный этим загрузчиком классов. |
final Package[] |
getDefinedPackages() |
Возвращает все Packageы, определенные этим загрузчиком классов. |
String |
getName() |
Возвращает имя этого загрузчика классов или null, если загрузчику классов не присвоено имя. |
protected Package |
getPackage |
Устарел. Если несколько загрузчиков классов делегируют друг другу загрузку и определяют классы с одинаковым именем пакета, а один из таких загрузчиков полагается на поведение поиска getPackage, чтобы получить Package из родительского загрузчика, свойства, предоставляемые Package, могут не соответствовать ожидаемым в остальной части программы. |
protected Package[] |
getPackages() |
Возвращает все Packageы, определенные этим загрузчиком классов и его предками. |
final ClassLoader |
getParent() |
Возвращает родительский загрузчик классов, используемый для делегирования. |
static ClassLoader |
getPlatformClassLoader() |
Возвращает загрузчик классов платформы. |
URL |
getResource |
Находит ресурс с указанным именем. |
Enumeration |
getResources |
Находит все ресурсы с указанным именем. |
static ClassLoader |
getSystemClassLoader() |
Возвращает системный загрузчик классов. |
static URL |
getSystemResource |
Находит ресурс с указанным именем в пути поиска, используемом для загрузки классов. |
static InputStream |
getSystemResourceAsStream |
Открывает для чтения ресурс с указанным именем в пути поиска, используемом для загрузки классов. |
static Enumeration |
getSystemResources |
Находит все ресурсы с указанным именем в пути поиска, используемом для загрузки классов. |
final Module |
getUnnamedModule() |
Возвращает безымянный Module для этого загрузчика классов. |
final boolean |
isRegisteredAsParallelCapable() |
Возвращает true, если этот загрузчик классов зарегистрирован как способный к параллельной загрузке, в противном случае возвращает false. |
Class |
loadClass |
Загружает класс с указанным двоичным именем. |
protected Class |
loadClass |
Загружает класс с указанным двоичным именем. |
protected static boolean |
registerAsParallelCapable() |
Регистрирует вызывающий класс как способный к параллельной загрузке. |
protected final void |
resolveClass |
Связывает указанный класс. |
Stream |
resources |
Возвращает поток, элементы которого — URL всех ресурсов с указанным именем. |
void |
setClassAssertionStatus |
Устанавливает требуемое состояние утверждений для именованного класса верхнего уровня в этом загрузчике классов и всех содержащихся в нем вложенных классов. |
void |
setDefaultAssertionStatus |
Устанавливает состояние утверждений по умолчанию для этого загрузчика классов. |
void |
setPackageAssertionStatus |
Устанавливает состояние утверждений по умолчанию для указанного пакета. |
protected final void |
setSigners |
Устанавливает цифровые подписи класса. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли этот объект какому-либо другому объекту. |
protected void |
finalize() |
Устарел, подлежит удалению: этот элемент API может быть удален в будущей версии. Финализация устарела и может быть удалена в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Заставляет текущий поток ожидать пробуждения, обычно после получения уведомления или прерывания. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно после получения уведомления или прерывания, либо до истечения определенного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно после получения уведомления или прерывания, либо до истечения определенного промежутка реального времени. |
Подробное описание конструкторов
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— имя ресурса - Возвращает:
EnumerationURL. Если загрузчик закрыт, Enumeration не содержит элементов.- Исключения:
-
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.
defineClass(String, byte[], int, int)