URLClassLoader

public class URLClassLoader
extends SecureClassLoader implements Closeable

java.lang.Object
   ↳ java.lang.ClassLoader
     ↳ java.security.SecureClassLoader
       ↳ java.net.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.

Summary

Public constructors

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.

Public methods

void close()

Closes this URLClassLoader, so that it can no longer be used to load new classes or resources that are defined by this loader.

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.

InputStream getResourceAsStream(String name)

Returns an input stream for reading the specified resource.

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.

Protected methods

void addURL(URL url)

Appends the specified URL to the list of URLs to search for classes and resources.

Package definePackage(String name, Manifest man, URL url)

Defines a new package by name in this ClassLoader.

Class<?> findClass(String name)

Finds and loads the class with the specified name from the URL search path.

PermissionCollection getPermissions(CodeSource codesource)

Returns the permissions for the given codesource object.

Inherited methods