org.gjt.sp.jedit

## Class JARClassLoader

- java.lang.Object
- - java.lang.ClassLoader
  - - org.gjt.sp.jedit.JARClassLoader

    public class JARClassLoader
    extends java.lang.ClassLoader

A class loader implementation that loads classes from JAR files. All instances share the same set of classes.

### Constructor Summary

Constructors
Constructor and Description
`JARClassLoader()` This constructor creates a class loader for loading classes from all plugins.
`JARClassLoader(boolean delegateFirst)` Creates a class loader that will optionally delegate the finding of classes to the parent class loader by default.

### Method Summary

Methods
`static void` `dump()` For debugging.
`protected void` `finalize()`
`java.net.URL` `getResource(java.lang.String name)` overriding getResource() because we want to search FIRST in this ClassLoader, then the parent, the path, etc.
`java.lang.String` `getResourceAsPath(java.lang.String name)` construct a jeditresource:/etc path from the name of a resource in the associated jar.
`java.io.InputStream` `getResourceAsStream(java.lang.String name)`
`java.util.Enumeration` `getResources(java.lang.String name)`
`java.lang.Class` `loadClass(java.lang.String clazz, boolean resolveIt)`
`java.lang.String` `toString()`

### Methods inherited from class java.lang.ClassLoader

`clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findResources, findSystemClass, getClassLoadingLock, getPackage, getPackages, getParent, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, registerAsParallelCapable, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners`

### Methods inherited from class java.lang.Object

`clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Constructor Detail

#### JARClassLoader

    public JARClassLoader()

This constructor creates a class loader for loading classes from all plugins. For example BeanShell uses one of these so that scripts can use plugin classes.

#### JARClassLoader

    public JARClassLoader(boolean delegateFirst)

Creates a class loader that will optionally delegate the finding of classes to the parent class loader by default.

Since:
  jEdit 4.3pre6

### Method Detail

#### loadClass

    public java.lang.Class loadClass(java.lang.String clazz,
                            boolean resolveIt)
                              throws java.lang.ClassNotFoundException

Overrides:
  `loadClass` in class `java.lang.ClassLoader`
Throws:
  `java.lang.ClassNotFoundException` - if the class could not be found

#### getResourceAsStream

    public java.io.InputStream getResourceAsStream(java.lang.String name)

Overrides:
  `getResourceAsStream` in class `java.lang.ClassLoader`

#### getResource

    public java.net.URL getResource(java.lang.String name)

overriding getResource() because we want to search FIRST in this ClassLoader, then the parent, the path, etc.

Overrides:
  `getResource` in class `java.lang.ClassLoader`

#### getResourceAsPath

    public java.lang.String getResourceAsPath(java.lang.String name)

construct a jeditresource:/etc path from the name of a resource in the associated jar. The existence of the resource is not actually checked.

Parameters:
  `name` - name of the resource
Returns:
  jeditresource:/path_to_the_jar!name_of_the_resource
Throws:
  `java.lang.UnsupportedOperationException` - if this is an anonymous JARClassLoader (no associated jar).

#### dump

    public static void dump()

For debugging.

#### toString

    public java.lang.String toString()

Overrides:
  `toString` in class `java.lang.Object`

#### getResources

    public java.util.Enumeration getResources(java.lang.String name)
                                       throws java.io.IOException

Overrides:
  `getResources` in class `java.lang.ClassLoader`
Returns:
  zero or one resource, as returned by getResource()
Throws:
  `java.io.IOException`

#### finalize

    protected void finalize()

Overrides:
  `finalize` in class `java.lang.Object`