Spec-Zone.ru › OpenJDK 27

Класс SecureClassLoader

java.lang.Object
java.lang.ClassLoader
java.security.SecureClassLoader
Прямые известные подклассы:
URLClassLoader
public class SecureClassLoader extends ClassLoader
Этот класс расширяет ClassLoader, добавляя поддержку определения классов с связанным источником кода и разрешениями.
Примечание к API:
Разрешения нельзя использовать для управления доступом к ресурсам, поскольку менеджер безопасности больше не поддерживается.
С версии:
1.2

Краткое описание конструкторов

SecureClassLoader()
SecureClassLoader(ClassLoader parent)
SecureClassLoader(String name, ClassLoader parent)
Модификатор Конструктор Описание
protected
Создает новый SecureClassLoader, используя системный загрузчик классов в качестве родительского.
protected
Создает новый SecureClassLoader, используя указанный родительский загрузчик классов для делегирования.
protected
Создает новый SecureClassLoader с указанным именем и использует указанный родительский загрузчик классов для делегирования.

Краткое описание методов

Модификатор и тип Метод Описание
protected final Class<?> defineClass(String name, byte[] b, int off, int len, CodeSource cs)
Преобразует массив байтов в экземпляр класса Class с необязательным CodeSource.
protected final Class<?> defineClass(String name, ByteBuffer b, CodeSource cs)
Преобразует ByteBuffer в экземпляр класса Class с необязательным CodeSource.
protected PermissionCollection getPermissions(CodeSource codesource)
Возвращает разрешения для указанного объекта 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(byte[] b, int off, int len)
Устарел.
Заменен на defineClass(String, byte[], int, int)
protected final Class<?> defineClass(String name, byte[] b, int off, int len)
Преобразует массив байтов в экземпляр класса Class.
protected final Class<?> defineClass(String name, byte[] b, int off, int len, ProtectionDomain protectionDomain)
Преобразует массив байтов в экземпляр класса Class с указанным ProtectionDomain.
protected final Class<?> defineClass(String name, ByteBuffer b, ProtectionDomain protectionDomain)
Преобразует ByteBuffer в экземпляр класса Class с указанным ProtectionDomain.
protected Package definePackage(String name, String specTitle, String specVersion, String specVendor, String implTitle, String implVersion, String implVendor, URL sealBase)
Определяет пакет по имени в этом ClassLoader.
protected Class<?> findClass(String name)
Находит класс с указанным двоичным именем.
protected Class<?> findClass(String moduleName, String name)
Находит класс с указанным двоичным именем в модуле, определенном для этого загрузчика классов.
protected String findLibrary(String libname)
Возвращает абсолютный путь к нативной библиотеке.
protected final Class<?> findLoadedClass(String name)
Возвращает класс с указанным двоичным именем, если виртуальная машина Java зарегистрировала этот загрузчик как инициирующий загрузчик класса с таким двоичным именем.
protected URL findResource(String name)
Находит ресурс с указанным именем.
protected URL findResource(String moduleName, String name)
Возвращает URL ресурса в модуле, определенном для этого загрузчика классов.
protected Enumeration<URL> findResources(String name)
Возвращает перечисление объектов URL, представляющих все ресурсы с указанным именем.
protected final Class<?> findSystemClass(String name)
Находит класс с указанным двоичным именем, загружая его при необходимости.
protected Object getClassLoadingLock(String className)
Возвращает объект блокировки для операций загрузки классов.
final Package getDefinedPackage(String name)
Возвращает Package с указанным именем, определенный этим загрузчиком классов.
final Package[] getDefinedPackages()
Возвращает все Packages, определенные этим загрузчиком классов.
String getName()
Возвращает имя этого загрузчика классов или null, если имя загрузчику классов не присвоено.
protected Package getPackage(String name)
Устарел.
Если несколько загрузчиков классов делегируют загрузку друг другу и определяют классы с одинаковым именем пакета, а один из таких загрузчиков полагается на поведение поиска метода getPackage, возвращающего Package из родительского загрузчика, то свойства, предоставляемые Package, могут оказаться не такими, как ожидается в остальной части программы.
protected Package[] getPackages()
Возвращает все Packages, определенные этим загрузчиком классов и его предками.
final ClassLoader getParent()
Возвращает родительский загрузчик классов, которому делегируется загрузка.
static ClassLoader getPlatformClassLoader()
Возвращает загрузчик классов платформы.
URL getResource(String name)
Находит ресурс с указанным именем.
InputStream getResourceAsStream(String name)
Возвращает входной поток для чтения указанного ресурса.
Enumeration<URL> getResources(String name)
Находит все ресурсы с указанным именем.
static ClassLoader getSystemClassLoader()
Возвращает системный загрузчик классов.
static URL getSystemResource(String name)
Находит ресурс с указанным именем в пути поиска, используемом для загрузки классов.
static InputStream getSystemResourceAsStream(String name)
Открывает для чтения ресурс с указанным именем в пути поиска, используемом для загрузки классов.
static Enumeration<URL> getSystemResources(String name)
Находит все ресурсы с указанным именем в пути поиска, используемом для загрузки классов.
final Module getUnnamedModule()
Возвращает безымянный Module для этого загрузчика классов.
final boolean isRegisteredAsParallelCapable()
Возвращает true, если этот загрузчик классов зарегистрирован как способный к параллельной загрузке, в противном случае — false.
Class<?> loadClass(String name)
Загружает класс с указанным двоичным именем.
protected Class<?> loadClass(String name, boolean resolve)
Загружает класс с указанным двоичным именем.
protected static boolean registerAsParallelCapable()
Регистрирует вызывающий код как способный к параллельной загрузке.
protected final void resolveClass(Class<?> c)
Связывает указанный класс.
Stream<URL> resources(String name)
Возвращает поток, элементы которого — URL всех ресурсов с указанным именем.
void setClassAssertionStatus(String className, boolean enabled)
Устанавливает требуемый статус утверждений для именованного класса верхнего уровня в этом загрузчике классов и всех содержащихся в нем вложенных классов.
void setDefaultAssertionStatus(boolean enabled)
Устанавливает для этого загрузчика классов статус утверждений по умолчанию.
void setPackageAssertionStatus(String packageName, boolean enabled)
Устанавливает статус утверждений по умолчанию для указанного пакета.
protected final void setSigners(Class<?> c, Object[] signers)
Устанавливает подписантов класса.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли другой объект этому объекту.
protected void finalize()
Устарел, будет удален: этот элемент API подлежит удалению в будущей версии.
Финализация устарела и подлежит удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания, либо истечения определенного времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания, либо истечения определенного времени.

Подробное описание конструкторов

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)
Возвращает разрешения для указанного объекта CodeSource.

Этот метод вызывается методом defineClass, принимающим CodeSource в качестве аргумента, при создании ProtectionDomain для определяемого класса.

Параметры:
codesource — источник кода.
Возвращает:
разрешения для источника кода.

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, включая концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, 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.

Spec-Zone.ru

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