Класс SecureClassLoader
- Прямые известные подклассы:
URLClassLoader
public class SecureClassLoader extends ClassLoader
ClassLoader, добавляя поддержку определения классов с связанным источником кода и разрешениями.- Примечание к API:
- Разрешения нельзя использовать для управления доступом к ресурсам, поскольку менеджер безопасности больше не поддерживается.
- С версии:
- 1.2
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создает новый SecureClassLoader, используя системный загрузчик классов в качестве родительского. |
|
protected |
Создает новый SecureClassLoader, используя указанный родительский загрузчик классов для делегирования. |
|
protected |
Создает новый SecureClassLoader с указанным именем и использует указанный родительский загрузчик классов для делегирования. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
protected final Class |
defineClass |
Преобразует массив байтов в экземпляр класса Class с необязательным CodeSource. |
protected final Class |
defineClass |
Преобразует ByteBuffer в экземпляр класса Class с необязательным CodeSource. |
protected PermissionCollection |
getPermissions |
Возвращает разрешения для указанного объекта CodeSource. |
Методы, объявленные в классе ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findClass, findLibrary, findLoadedClass, findResource, findResource, findResources, findSystemClass, getClassLoadingLock, getDefinedPackage, getDefinedPackages, getName, getPackage, getPackages, getParent, getPlatformClassLoader, getResource, getResourceAsStream, 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 Class |
findClass |
Находит класс с указанным двоичным именем в модуле, определенном для этого загрузчика классов. |
protected String |
findLibrary |
Возвращает абсолютный путь к нативной библиотеке. |
protected final Class |
findLoadedClass |
Возвращает класс с указанным двоичным именем, если виртуальная машина Java зарегистрировала этот загрузчик как инициирующий загрузчик класса с таким двоичным именем. |
protected URL |
findResource |
Находит ресурс с указанным именем. |
protected URL |
findResource |
Возвращает URL ресурса в модуле, определенном для этого загрузчика классов. |
protected Enumeration |
findResources |
Возвращает перечисление объектов URL, представляющих все ресурсы с указанным именем. |
protected final Class |
findSystemClass |
Находит класс с указанным двоичным именем, загружая его при необходимости. |
protected Object |
getClassLoadingLock |
Возвращает объект блокировки для операций загрузки классов. |
final Package |
getDefinedPackage |
Возвращает Package с указанным именем, определенный этим загрузчиком классов. |
final Package[] |
getDefinedPackages() |
Возвращает все Packages, определенные этим загрузчиком классов. |
String |
getName() |
Возвращает имя этого загрузчика классов или null, если имя загрузчику классов не присвоено. |
protected Package |
getPackage |
Устарел. Если несколько загрузчиков классов делегируют загрузку друг другу и определяют классы с одинаковым именем пакета, а один из таких загрузчиков полагается на поведение поиска метода getPackage, возвращающего Package из родительского загрузчика, то свойства, предоставляемые Package, могут оказаться не такими, как ожидается в остальной части программы. |
protected Package[] |
getPackages() |
Возвращает все Packages, определенные этим загрузчиком классов и его предками. |
final ClassLoader |
getParent() |
Возвращает родительский загрузчик классов, которому делегируется загрузка. |
static ClassLoader |
getPlatformClassLoader() |
Возвращает загрузчик классов платформы. |
URL |
getResource |
Находит ресурс с указанным именем. |
InputStream |
getResourceAsStream |
Возвращает входной поток для чтения указанного ресурса. |
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 |
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания, либо истечения определенного времени. |
Подробное описание конструкторов
SecureClassLoader
protected SecureClassLoader(ClassLoader parent)
SecureClassLoader, используя указанный родительский загрузчик классов для делегирования.- Примечание к API:
- Если в качестве
nullуказаноparent(для загрузчика классов начальной загрузки), нет гарантии, что все классы платформы будут доступны. Сведения о загрузчике классов начальной загрузки и других встроенных загрузчиках классов см. в разделе Встроенные загрузчики классов времени выполнения. - Параметры:
-
parent— родительский ClassLoader; для загрузчика классов начальной загрузки может бытьnull
SecureClassLoader
protected SecureClassLoader()
SecureClassLoader, используя системный загрузчик классов в качестве родительского.SecureClassLoader
protected SecureClassLoader(String name, ClassLoader parent)
SecureClassLoader с указанным именем и использует указанный родительский загрузчик классов для делегирования.- Примечание к API:
- Если в качестве
nullуказаноparent(для загрузчика классов начальной загрузки), нет гарантии, что все классы платформы будут доступны. Сведения о загрузчике классов начальной загрузки и других встроенных загрузчиках классов см. в разделе Встроенные загрузчики классов времени выполнения. - Параметры:
-
name— имя загрузчика классов; илиnull, если имя не задано -
parent— родительский загрузчик классов; для загрузчика классов начальной загрузки может бытьnull - Исключения:
-
IllegalArgumentException— если указанное имя пусто. - С версии:
- 9
Подробное описание методов
defineClass
protected final Class<?> defineClass(String name, byte[] b, int off, int len, CodeSource cs)
Class с необязательным CodeSource. Прежде чем класс можно будет использовать, его необходимо разрешить. Если указан ненулевой CodeSource, создается ProtectionDomain и связывается с определяемым классом.
- Параметры:
-
name— ожидаемое имя класса илиnull, если оно неизвестно; в качестве разделителя используется «.», а не «/», суффикс ".class" в конце не указывается. -
b— байты, составляющие данные класса. Байты в позициях отoffдоoff+len-1должны иметь формат допустимого файла класса, определенный в Спецификации виртуальной машины Java. -
off— начальное смещение данных класса вb -
len— длина данных класса -
cs— связанный CodeSource илиnull, если он отсутствует - Возвращает:
- объект
Class, созданный на основе данных и необязательного CodeSource. - Исключения:
-
ClassFormatError— если данные не содержали допустимый класс -
IndexOutOfBoundsException— еслиoffилиlenимеет отрицательное значение либо еслиoff+lenбольшеb.length. -
SecurityException— если предпринимается попытка добавить этот класс в пакет, содержащий классы, подписанные набором сертификатов, отличным от набора сертификатов этого класса, или если имя класса начинается с "java.".
defineClass
protected final Class<?> defineClass(String name, ByteBuffer b, CodeSource cs)
ByteBuffer в экземпляр класса Class с необязательным CodeSource. Прежде чем класс можно будет использовать, его необходимо разрешить. Если указан ненулевой CodeSource, создается ProtectionDomain и связывается с определяемым классом.
- Параметры:
-
name— ожидаемое имя класса илиnull, если оно неизвестно; в качестве разделителя используется «.», а не «/», суффикс ".class" в конце не указывается. -
b— байты, составляющие данные класса. Байты в позициях отb.position()доb.position() + b.limit() -1должны иметь формат допустимого файла класса, определенный в Спецификации виртуальной машины Java. -
cs— связанный CodeSource илиnull, если он отсутствует - Возвращает:
- объект
Class, созданный на основе данных и необязательного CodeSource. - Исключения:
-
ClassFormatError— если данные не содержали допустимый класс -
SecurityException— если предпринимается попытка добавить этот класс в пакет, содержащий классы, подписанные набором сертификатов, отличным от набора сертификатов этого класса, или если имя класса начинается с "java.". - С версии:
- 1.5
getPermissions
protected PermissionCollection getPermissions(CodeSource codesource)
Этот метод вызывается методом defineClass, принимающим CodeSource в качестве аргумента, при создании ProtectionDomain для определяемого класса.
- Параметры:
-
codesource— источник кода. - Возвращает:
- разрешения для источника кода.
© 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)