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
    Modifier and Type | Method and Description
    --- | ---
    `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`