|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.net
类 URLClassLoader
java.lang.Object java.lang.ClassLoader java.security.SecureClassLoader java.net.URLClassLoader
- 直接已知子类:
- MLet
-
public class URLClassLoader
- extends SecureClassLoader
该类加载器用于从指向 JAR 文件和目录的 URL 的搜索路径加载类和资源。这里假定任何以 '/' 结束的 URL 都是指向目录的。如果不是以该字符结束,则认为该 URL 指向一个将根据需要打开的 JAR 文件。
创建 URLClassLoader 实例的 AccessControlContext 线程将在后续加载类和资源时使用。
为加载的类默认授予只能访问 URLClassLoader 创建时指定的 URL 的权限。
- 从以下版本开始:
- 1.2
构造方法摘要 | |
---|---|
URLClassLoader(URL[] urls) 使用默认的委托父 ClassLoader 为指定的 URL 构造一个新 URLClassLoader。 |
|
URLClassLoader(URL[] urls, ClassLoader parent) 为给定的 URL 构造新 URLClassLoader。 |
|
URLClassLoader(URL[] urls, ClassLoader parent, URLStreamHandlerFactory factory) 为指定的 URL、父类加载器和 URLStreamHandlerFactory 创建新 URLClassLoader。 |
方法摘要 | |
---|---|
protected void |
addURL(URL url) 将指定的 URL 添加到 URL 列表中,以便搜索类和资源。 |
protected Package |
definePackage(String name, Manifest man, URL url) 用该 ClassLoader 中的名称定义一个新包。 |
protected Class<?> |
findClass(String name) 通过 URL 搜索路径查找并加载具有指定名称的类。 |
URL |
findResource(String name) 在 URL 搜索路径中查找具有指定名称的资源。 |
Enumeration<URL> |
findResources(String name) 返回表示 URL 搜索路径中具有指定名称的所有资源的 URL 枚举。 |
protected PermissionCollection |
getPermissions(CodeSource codesource) 返回给定 codesource 对象的权限。 |
URL[] |
getURLs() 返回用于加载类和资源的 URL 搜索路径。 |
static URLClassLoader |
newInstance(URL[] urls) 为指定的 URL 和默认的父类加载器创建新 URLClassLoader 实例。 |
static URLClassLoader |
newInstance(URL[] urls, ClassLoader parent) 为指定的 URL 和父类加载器创建新 URLClassLoader 实例。 |
从类 java.security.SecureClassLoader 继承的方法 |
---|
defineClass, defineClass |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
URLClassLoader
public URLClassLoader(URL[] urls, ClassLoader parent)
-
为给定的 URL 构造新 URLClassLoader。首先在指定的父类加载器中搜索 URL,然后按照为类和资源指定的顺序搜索 URL。这里假定任何以 '/' 结束的 URL 都是指向目录的。如果不是以该字符结束,则认为该 URL 指向一个将根据需要下载和打开的 JAR 文件。
如果有安全管理器,该方法首先调用安全管理器的
checkCreateClassLoader
方法以确保允许创建类加载器。- 参数:
-
urls
- 从其位置加载类和资源的 UR -
parent
- 用于委托的父类加载器 - 抛出:
-
SecurityException
- 如果存在安全管理器,且其checkCreateClassLoader
方法不允许创建类加载器。 - 另请参见:
-
SecurityManager.checkCreateClassLoader()
URLClassLoader
public URLClassLoader(URL[] urls)
-
使用默认的委托父
ClassLoader
为指定的 URL 构造一个新 URLClassLoader。首先在父类加载器中搜索 URL,然后按照为类和资源指定的顺序搜索 URL。这里假定任何以 '/' 结束的 URL 都是指向目录的。如果不是以该字符结束,则认为该 URL 指向一个将根据需要下载和打开的 JAR 文件。如果有安全管理器,该方法首先调用安全管理器的
checkCreateClassLoader
方法以确保允许创建类加载器。- 参数:
-
urls
- 从其位置加载类和资源的 URL - 抛出:
-
SecurityException
- 如果安全管理器存在并且其checkCreateClassLoader
方法不允许创建类加载器。 - 另请参见:
-
SecurityManager.checkCreateClassLoader()
URLClassLoader
public URLClassLoader(URL[] urls, ClassLoader parent, URLStreamHandlerFactory factory)
-
为指定的 URL、父类加载器和 URLStreamHandlerFactory 创建新 URLClassLoader。该父参数将充当委托的父类加载器。该工厂参数将充当创建新 URL 时获取协议处理程序的流处理程序工厂。
如果有安全管理器,该方法首先调用安全管理器的
checkCreateClassLoader
方法以确保允许创建类加载器。- 参数:
-
urls
- 从其位置加载类和资源的 URL -
parent
- 用于委托的父类加载器 -
factory
- 创建 URL 时使用的 URLStreamHandlerFactory - 抛出:
-
SecurityException
- 如果安全管理器存在并且其checkCreateClassLoader
方法不允许创建类加载器。 - 另请参见:
-
SecurityManager.checkCreateClassLoader()
方法详细信息 |
---|
addURL
protected void addURL(URL url)
- 将指定的 URL 添加到 URL 列表中,以便搜索类和资源。
-
- 参数:
-
url
- 将添加到 URL 搜索路径中的 URL
getURLs
public URL[] getURLs()
- 返回用于加载类和资源的 URL 搜索路径。这包括为构造方法指定的原始 URL 列表,以及由 addURL() 方法后续添加的 URL。
-
- 返回:
- 用于加载类和资源的 URL 搜索路径。
findClass
protected Class<?> findClass(String name) throws ClassNotFoundException
- 通过 URL 搜索路径查找并加载具有指定名称的类。只有在找到该类后,才能根据需要加载和打开任何指向 JAR 文件的 URL。
-
- 覆盖:
-
类
ClassLoader
中的findClass
-
- 参数:
-
name
- 类的名称 - 返回:
- 结果类
- 抛出:
-
ClassNotFoundException
- 如果无法找到该类
definePackage
protected Package definePackage(String name, Manifest man, URL url) throws IllegalArgumentException
- 用该 ClassLoader 中的名称定义一个新包。该指定的 Manifest 中包含的属性将用于包含包版本和密封信息。对于密封的包,此附加 URL 从加载该包的 URL 指定代码源 URL。
-
- 参数:
-
name
- 包的名称 -
man
- 包含包的版本和密封信息的 Manifest -
url
- 包的代码源 url,或者如果没有,则为 null - 返回:
- 新定义的 Package 对象
- 抛出:
-
IllegalArgumentException
- 如果包的名称与该类加载器或其祖先之一中现有的包重名
findResource
public URL findResource(String name)
- 在 URL 搜索路径中查找具有指定名称的资源。
-
- 覆盖:
-
类
ClassLoader
中的findResource
-
- 参数:
-
name
- 资源的名称 - 返回:
-
资源的
URL
,或者如果无法找到该资源,则返回null
。