| java.lang.Object java.lang.ClassLoader java.security.SecureClassLoader java.net.URLClassLoader
All known Subclasses: sun.misc.MIDletClassLoader, com.sun.xlet.XletClassLoader, sun.misc.MIDPImplementationClassLoader, sun.misc.CDCAppClassLoader, sun.applet.AppletClassLoader,
URLClassLoader | public class URLClassLoader extends SecureClassLoader (Code) | | This class loader is used to load classes and resources from a search
path of URLs referring to both JAR files and directories. Any URL that
ends with a '/' is assumed to refer to a directory. Otherwise, the URL
is assumed to refer to a JAR file which will be opened as needed.
The AccessControlContext of the thread that created the instance of
URLClassLoader will be used when subsequently loading classes and
resources.
The classes that are loaded are by default granted permission only to
access the URLs specified when the URLClassLoader was created.
author: David Connelly version: 1.72 10/17/00 since: 1.2 |
Method Summary | |
protected void | addURL(URL url) Appends the specified URL to the list of URLs to search for
classes and resources. | protected Package | definePackage(String name, Manifest man, URL url) Defines a new package by name in this ClassLoader. | protected Class | findClass(String name) Finds and loads the class with the specified name from the URL search
path. | public URL | findResource(String name) Finds the resource with the specified name on the URL search path. | public Enumeration | findResources(String name) Returns an Enumeration of URLs representing all of the resources
on the URL search path having the specified name. | protected PermissionCollection | getPermissions(CodeSource codesource) Returns the permissions for the given codesource object.
The implementation of this method first calls super.getPermissions
and then adds permissions based on the URL of the codesource.
If the protocol is "file"
and the path specifies a file, then permission to read that
file is granted. | public URL[] | getURLs() Returns the search path of URLs for loading classes and resources. | public static URLClassLoader | newInstance(URL[] urls, ClassLoader parent) Creates a new instance of URLClassLoader for the specified
URLs and parent class loader. | public static URLClassLoader | newInstance(URL[] urls) Creates a new instance of URLClassLoader for the specified
URLs and default parent class loader. |
URLClassLoader | public URLClassLoader(URL[] urls, ClassLoader parent)(Code) | | Constructs a new URLClassLoader for the given URLs. The URLs will be
searched in the order specified for classes and resources after first
searching in the specified parent class loader. Any URL that ends with
a '/' is assumed to refer to a directory. Otherwise, the URL is assumed
to refer to a JAR file which will be downloaded and opened as needed.
If there is a security manager, this method first
calls the security manager's checkCreateClassLoader method
to ensure creation of a class loader is allowed.
Parameters: urls - the URLs from which to load classes and resources Parameters: parent - the parent class loader for delegation exception: SecurityException - if a security manager exists and its checkCreateClassLoader method doesn't allow creation of a class loader. See Also: SecurityManager.checkCreateClassLoader |
URLClassLoader | public URLClassLoader(URL[] urls)(Code) | | Constructs a new URLClassLoader for the specified URLs using the
default delegation parent ClassLoader . The URLs will
be searched in the order specified for classes and resources after
first searching in the parent class loader. Any URL that ends with
a '/' is assumed to refer to a directory. Otherwise, the URL is
assumed to refer to a JAR file which will be downloaded and opened
as needed.
If there is a security manager, this method first
calls the security manager's checkCreateClassLoader method
to ensure creation of a class loader is allowed.
Parameters: urls - the URLs from which to load classes and resources exception: SecurityException - if a security manager exists and its checkCreateClassLoader method doesn't allow creation of a class loader. See Also: SecurityManager.checkCreateClassLoader |
URLClassLoader | public URLClassLoader(URL[] urls, ClassLoader parent, URLStreamHandlerFactory factory)(Code) | | Constructs a new URLClassLoader for the specified URLs, parent
class loader, and URLStreamHandlerFactory. The parent argument
will be used as the parent class loader for delegation. The
factory argument will be used as the stream handler factory to
obtain protocol handlers when creating new URLs.
If there is a security manager, this method first
calls the security manager's checkCreateClassLoader method
to ensure creation of a class loader is allowed.
Parameters: urls - the URLs from which to load classes and resources Parameters: parent - the parent class loader for delegation Parameters: factory - the URLStreamHandlerFactory to use when creating URLs exception: SecurityException - if a security manager exists and its checkCreateClassLoader method doesn't allow creation of a class loader. See Also: SecurityManager.checkCreateClassLoader |
addURL | protected void addURL(URL url)(Code) | | Appends the specified URL to the list of URLs to search for
classes and resources.
Parameters: url - the URL to be added to the search path of URLs |
definePackage | protected Package definePackage(String name, Manifest man, URL url) throws IllegalArgumentException(Code) | | Defines a new package by name in this ClassLoader. The attributes
contained in the specified Manifest will be used to obtain package
version and sealing information. For sealed packages, the additional
URL specifies the code source URL from which the package was loaded.
Parameters: name - the package name Parameters: man - the Manifest containing package version and sealinginformation Parameters: url - the code source url for the package, or null if none exception: IllegalArgumentException - if the package name duplicatesan existing package either in this class loader or oneof its ancestors the newly defined Package object |
findClass | protected Class findClass(String name) throws ClassNotFoundException(Code) | | Finds and loads the class with the specified name from the URL search
path. Any URLs referring to JAR files are loaded and opened as needed
until the class is found.
Parameters: name - the name of the class the resulting class exception: ClassNotFoundException - if the class could not be found |
findResource | public URL findResource(String name)(Code) | | Finds the resource with the specified name on the URL search path.
Parameters: name - the name of the resource a URL for the resource, or null if the resource could not be found. |
findResources | public Enumeration findResources(String name) throws IOException(Code) | | Returns an Enumeration of URLs representing all of the resources
on the URL search path having the specified name.
Parameters: name - the resource name exception: IOException - if an I/O exception occurs an Enumeration of URL s |
getPermissions | protected PermissionCollection getPermissions(CodeSource codesource)(Code) | | Returns the permissions for the given codesource object.
The implementation of this method first calls super.getPermissions
and then adds permissions based on the URL of the codesource.
If the protocol is "file"
and the path specifies a file, then permission to read that
file is granted. If protocol is "file" and the path is
a directory, permission is granted to read all files
and (recursively) all files and subdirectories contained in
that directory.
If the protocol is not "file", then
to connect to and accept connections from the URL's host is granted.
Parameters: codesource - the codesource the permissions granted to the codesource |
getURLs | public URL[] getURLs()(Code) | | Returns the search path of URLs for loading classes and resources.
This includes the original list of URLs specified to the constructor,
along with any URLs subsequently appended by the addURL() method.
the search path of URLs for loading classes and resources. |
newInstance | public static URLClassLoader newInstance(URL[] urls, ClassLoader parent)(Code) | | Creates a new instance of URLClassLoader for the specified
URLs and parent class loader. If a security manager is
installed, the loadClass method of the URLClassLoader
returned by this method will invoke the
SecurityManager.checkPackageAccess method before
loading the class.
Parameters: urls - the URLs to search for classes and resources Parameters: parent - the parent class loader for delegation the resulting class loader |
newInstance | public static URLClassLoader newInstance(URL[] urls)(Code) | | Creates a new instance of URLClassLoader for the specified
URLs and default parent class loader. If a security manager is
installed, the loadClass method of the URLClassLoader
returned by this method will invoke the
SecurityManager.checkPackageAccess before
loading the class.
Parameters: urls - the URLs to search for classes and resources the resulting class loader |
Methods inherited from java.lang.ClassLoader | public synchronized void clearAssertionStatus()(Code)(Java Doc) final protected Class defineClass(String name, byte[] b, int off, int len) throws ClassFormatError(Code)(Java Doc) final protected Class defineClass(String name, byte[] b, int off, int len, ProtectionDomain protectionDomain) throws ClassFormatError(Code)(Java Doc) protected Package definePackage(String name, String specTitle, String specVersion, String specVendor, String implTitle, String implVersion, String implVendor, URL sealBase) throws IllegalArgumentException(Code)(Java Doc) protected Class findClass(String name) throws ClassNotFoundException(Code)(Java Doc) protected String findLibrary(String libname)(Code)(Java Doc) final protected Class findLoadedClass(String name)(Code)(Java Doc) protected URL findResource(String name)(Code)(Java Doc) protected Enumeration findResources(String name) throws IOException(Code)(Java Doc) final protected Class findSystemClass(String name) throws ClassNotFoundException(Code)(Java Doc) protected Package getPackage(String name)(Code)(Java Doc) protected Package[] getPackages()(Code)(Java Doc) final public ClassLoader getParent()(Code)(Java Doc) public URL getResource(String name)(Code)(Java Doc) public InputStream getResourceAsStream(String name)(Code)(Java Doc) final public Enumeration getResources(String name) throws IOException(Code)(Java Doc) public static ClassLoader getSystemClassLoader()(Code)(Java Doc) public static URL getSystemResource(String name)(Code)(Java Doc) public static InputStream getSystemResourceAsStream(String name)(Code)(Java Doc) public static Enumeration getSystemResources(String name) throws IOException(Code)(Java Doc) public Class loadClass(String name) throws ClassNotFoundException(Code)(Java Doc) protected synchronized Class loadClass(String name, boolean resolve) throws ClassNotFoundException(Code)(Java Doc) final protected void resolveClass(Class c)(Code)(Java Doc) public synchronized void setClassAssertionStatus(String className, boolean enabled)(Code)(Java Doc) public synchronized void setDefaultAssertionStatus(boolean enabled)(Code)(Java Doc) public synchronized void setPackageAssertionStatus(String packageName, boolean enabled)(Code)(Java Doc) final protected void setSigners(Class c, Object[] signers)(Code)(Java Doc)
|
|
|