java.lang.Objectjava.lang.ClassLoader
java.security.SecureClassLoader
java.net.URLClassLoader
public class URLClassLoader
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.
Constructor Summary | |
---|---|
URLClassLoader
(
URL
[] urls) Constructs a new URLClassLoader for the specified URLs using the default delegation parent ClassLoader. |
|
URLClassLoader
(
URL
[] urls,
ClassLoader
parent) Constructs a new URLClassLoader for the given URLs. |
|
URLClassLoader
(
URL
[] urls,
ClassLoader
parent,
URLStreamHandlerFactory
factory) Constructs a new URLClassLoader for the specified URLs, parent class loader, and URLStreamHandlerFactory. |
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. |
URL |
findResource
(
String
name) Finds the resource with the specified name on the URL search path. |
Enumeration < URL > |
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. |
URL [] |
getURLs
() Returns the search path of URLs for loading classes and resources. |
static URLClassLoader |
newInstance
(
URL
[] urls) Creates a new instance of URLClassLoader for the specified URLs and default parent class loader. |
static URLClassLoader |
newInstance
(
URL
[] urls,
ClassLoader
parent) Creates a new instance of URLClassLoader for the specified URLs and parent class loader. |
Methods inherited from class java.security. SecureClassLoader |
---|
defineClass , defineClass |
Methods inherited from class 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 |
Methods inherited from class java.lang. Object |
---|
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait |
Constructor Detail |
---|
public URLClassLoader(URL[] urls, ClassLoader parent)
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.
public URLClassLoader(URL[] 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.
public URLClassLoader(URL[] urls, ClassLoader parent, URLStreamHandlerFactory factory)
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.
Method Detail |
---|
protected void addURL(URL url)
public URL[] getURLs()
protected Class<?> findClass(String name) throws ClassNotFoundException
protected Package definePackage(String name, Manifest man, URL url) throws IllegalArgumentException
public URL findResource(String name)
public Enumeration<URL> findResources(String name) throws IOException
protected PermissionCollection getPermissions(CodeSource codesource)
If the protocol of this URL is "jar", then the permission granted is based on the permission that is required by the URL of the Jar file.
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.
public static URLClassLoader newInstance(URL[] urls, ClassLoader parent)
public static URLClassLoader newInstance(URL[] urls)