java.applet

java.awt

java.awt.color

java.awt.datatransfer

java.awt.dnd

java.awt.event

java.awt.font

java.awt.geom

java.awt.im

java.awt.im.spi

java.awt.image

java.awt.image.renderable

java.awt.print

java.beans

java.beans.beancontext

java.io

java.lang

java.lang.annotation

java.lang.instrument

java.lang.management

java.lang.ref

java.lang.reflect

java.math

java.net

java.nio

java.nio.channels

java.nio.channels.spi

java.nio.charset

java.nio.charset.spi

java.rmi

java.rmi.activation

java.rmi.dgc

java.rmi.registry

java.rmi.server

java.security

java.security.acl

java.security.cert

java.security.interfaces

java.security.spec

java.sql

java.text

java.util

java.util.concurrent

java.util.concurrent.atomic

java.util.concurrent.locks

java.util.jar

java.util.logging

java.util.prefs

java.util.regex

java.util.zip

javax.accessibility

javax.activity

javax.crypto

javax.crypto.interfaces

javax.crypto.spec

javax.imageio

javax.imageio.event

javax.imageio.metadata

javax.imageio.plugins.bmp

javax.imageio.plugins.jpeg

javax.imageio.spi

javax.imageio.stream

javax.management

javax.management.loading

javax.management.modelmbean

javax.management.monitor

javax.management.openmbean

javax.management.relation

javax.management.remote

javax.management.remote.rmi

javax.management.timer

javax.naming

javax.naming.directory

javax.naming.event

javax.naming.ldap

javax.naming.spi

javax.net

javax.net.ssl

javax.print

javax.print.attribute

javax.print.attribute.standard

javax.print.event

javax.rmi

javax.rmi.CORBA

javax.rmi.ssl

javax.security.auth

javax.security.auth.callback

javax.security.auth.kerberos

javax.security.auth.login

javax.security.auth.spi

javax.security.auth.x500

javax.security.cert

javax.security.sasl

javax.sound.midi

javax.sound.midi.spi

javax.sound.sampled

javax.sound.sampled.spi

javax.sql

javax.sql.rowset

javax.sql.rowset.serial

javax.sql.rowset.spi

javax.swing

javax.swing.border

javax.swing.colorchooser

javax.swing.event

javax.swing.filechooser

javax.swing.plaf

javax.swing.plaf.basic

javax.swing.plaf.metal

javax.swing.plaf.multi

javax.swing.plaf.synth

javax.swing.table

javax.swing.text

javax.swing.text

javax.swing.text.parser

javax.swing.text.rtf

javax.swing.tree

javax.swing.undo

javax.transaction

javax.transaction.xa

javax.xml

javax.xml.datatype

javax.xml.namespace

javax.xml.parsers

javax.xml.transform

javax.xml.transform.dom

javax.xml.transform.sax

javax.xml.transform.stream

javax.xml.validation

javax.xml.xpath

org.ietf.jgss

org.omg.CORBA

org.omg.CORBA_2_3

org.omg.CORBA_2_3.portable

org.omg.CORBA.DynAnyPackage

org.omg.CORBA.ORBPackage

org.omg.CORBA.portable

org.omg.CORBA.TypeCodePackage

org.omg.CosNaming

org.omg.CosNaming.NamingContextExtPackage

org.omg.CosNaming.NamingContextPackage

org.omg.Dynamic

org.omg.DynamicAny

org.omg.DynamicAny.DynAnyFactoryPackage

org.omg.DynamicAny.DynAnyPackage

org.omg.IOP

org.omg.IOP.CodecFactoryPackage

org.omg.IOP.CodecPackage

org.omg.Messaging

org.omg.PortableInterceptor

org.omg.PortableInterceptor.ORBInitInfoPackage

org.omg.PortableServer

org.omg.PortableServer.CurrentPackage

org.omg.PortableServer.POAManagerPackage

org.omg.PortableServer.POAPackage

org.omg.PortableServer.portable

org.omg.PortableServer.ServantLocatorPackage

org.omg.SendingContext

org.omg.stub.java.rmi

org.w3c.dom

org.w3c.dom.bootstrap

org.w3c.dom.events

org.w3c.dom.ls

org.xml.sax

org.xml.sax.ext

org.xml.sax.helpers

allclasses-frame

allclasses-noframe

constant-values

deprecated-list

help-doc

JavaTM 2 Platform
Standard Ed. 5.0

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.ClassLoader 继承的方法
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findLibrary, findLoadedClass, findSystemClass, getPackage, getPackages, getParent, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, loadClass, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
 
从类 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

findResources

public Enumeration<URL> findResources(String name)
                               throws IOException
返回表示 URL 搜索路径中具有指定名称的所有资源的 URL 枚举。

覆盖:
ClassLoader 中的 findResources
参数:
name - 资源名称
返回:
URL枚举
抛出:
IOException - 如果发生 I/O 异常

getPermissions

protected PermissionCollection getPermissions(CodeSource codesource)
返回给定 codesource 对象的权限。该方法的实现首先调用 super.getPermissions,然后基于 codesource 的 URL 添加权限。

如果协议为 "file",并且路径指定了某个文件,则要授予对该文件的读权限。如果协议为 "file",并且路径是一个目录,则要授予该目录中的所有文件及其(递归)子目录中包含的所有文件读权限。

如果协议不是 "file",则允许连接到和接收来自 URL 主机的连接。

覆盖:
SecureClassLoader 中的 getPermissions
参数:
codesource - codesource
返回:
授予 codesource 的权限

newInstance

public static URLClassLoader newInstance(URL[] urls,
                                         ClassLoader parent)
为指定的 URL 和父类加载器创建新 URLClassLoader 实例。如果安装了安全管理器,该方法返回的 URLClassLoader 的 loadClass 方法将在加载该类之前调用 SecurityManager.checkPackageAccess 方法。

参数:
urls - 用于搜索类和资源的 URL
parent - 用于委托的父类加载器
返回:
结果类加载器

newInstance

public static URLClassLoader newInstance(URL[] urls)
为指定的 URL 和默认的父类加载器创建新 URLClassLoader 实例。如果安装了安全管理器,该方法返回的 URLClassLoader 的 loadClass 方法将在加载该类之前调用 SecurityManager.checkPackageAccess

参数:
urls - 用于搜索类和资源的 URL
返回:
结果类加载器

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策