Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.logging.log4j.core.util
Class Loader

    java.lang.Object
      org.apache.logging.log4j.core.util.Loader

    public final class Loader

extends Object

Load resources (or images) from various sources.

Method Summary
`static ClassLoader` | `getClassLoader()` Returns the ClassLoader to use.
`static ClassLoader` | `getClassLoader(Class<?> class1, Class<?> class2)`
`static URL` | `getResource(String resource, ClassLoader defaultLoader)` This method will search for `resource` in different places.
`static InputStream` | `getResourceAsStream(String resource, ClassLoader defaultLoader)` This method will search for `resource` in different places.
`static ClassLoader` | `getThreadContextClassLoader()` Returns the ClassLoader of current thread if possible, or falls back to the system ClassLoader if none is available.
`static Class<?>` | `initializeClass(String className, ClassLoader loader)` Loads and initializes a named Class using a given ClassLoader.
`static boolean` | `isClassAvailable(String className)` Determines if a named Class can be loaded or not.
`static Class<?>` | `loadClass(String className)` Load a Class by name.
`static Class<?>` | `loadSystemClass(String className)` Load a Class in the `java.*` namespace by name.
`static
`<T> T`
` | `newCheckedInstanceOf(String className, Class<T> clazz)` Loads, instantiates, and casts a Class using the default constructor.
`static Object` | `newInstanceOf(String className)` Loads and instantiates a Class using the default constructor.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Method Detail

### getClassLoader

    public static ClassLoader getClassLoader()

  Returns the ClassLoader to use.

  Returns:
    the ClassLoader.

### getThreadContextClassLoader

    public static ClassLoader getThreadContextClassLoader()

  Returns the ClassLoader of current thread if possible, or falls back to the system ClassLoader if none is available.

  Returns:
    the TCCL.
  See Also:
    `LoaderUtil.getThreadContextClassLoader()`

### getClassLoader

    public static ClassLoader getClassLoader(Class<?> class1,
                                             Class<?> class2)

### getResource

    public static URL getResource(String resource,
                                  ClassLoader defaultLoader)

  This method will search for `resource` in different places. The search order is as follows:
  1. Search for `resource` using the thread context class loader under Java2. If that fails, search for `resource` using the class loader that loaded this class (`Loader`). Under JDK 1.1, only the the class loader that loaded this class (`Loader`) is used.
  2. Try one last time with `ClassLoader.getSystemResource(resource)`, that is is using the system class loader in JDK 1.2 and virtual machine's built-in class loader in JDK 1.1.

  Parameters:
    `resource` - The resource to load.
    `defaultLoader` - The default ClassLoader.
  Returns:
    A URL to the resource.

### getResourceAsStream

    public static InputStream getResourceAsStream(String resource,
                                                  ClassLoader defaultLoader)

  This method will search for `resource` in different places. The search order is as follows:
  1. Search for `resource` using the thread context class loader under Java2. If that fails, search for `resource` using the class loader that loaded this class (`Loader`). Under JDK 1.1, only the the class loader that loaded this class (`Loader`) is used.
  2. Try one last time with `ClassLoader.getSystemResource(resource)`, that is is using the system class loader in JDK 1.2 and virtual machine's built-in class loader in JDK 1.1.

  Parameters:
    `resource` - The resource to load.
    `defaultLoader` - The default ClassLoader.
  Returns:
    An InputStream to read the resouce.

### loadClass

    public static Class<?> loadClass(String className)
                              throws ClassNotFoundException

  Load a Class by name. Note that unlike `ClassLoader.loadClass`, this method will initialize the class as well if it hasn't been already. This is equivalent to the calling the `protected version` with the second parameter equal to `true`.

  Parameters:
    `className` - The class name.
  Returns:
    The Class.
  Throws:
    `ClassNotFoundException` - if the Class could not be found.

### initializeClass

    public static Class<?> initializeClass(String className,
                                           ClassLoader loader)
                                    throws ClassNotFoundException

  Loads and initializes a named Class using a given ClassLoader.

  Parameters:
    `className` - The class name.
    `loader` - The class loader.
  Returns:
    The class.
  Throws:
    `ClassNotFoundException` - if the class could not be found.

### loadSystemClass

    public static Class<?> loadSystemClass(String className)
                                    throws ClassNotFoundException

  Load a Class in the `java.*` namespace by name. Useful for peculiar scenarios typically involving Google App Engine.

  Parameters:
    `className` - The class name.
  Returns:
    The Class.
  Throws:
    `ClassNotFoundException` - if the Class could not be found.

### newInstanceOf

    public static Object newInstanceOf(String className)
                                throws ClassNotFoundException,
                                       IllegalAccessException,
                                       InstantiationException,
                                       NoSuchMethodException,
                                       InvocationTargetException

  Loads and instantiates a Class using the default constructor.

  Parameters:
    `className` - The class name.
  Returns:
    new instance of the class.
  Throws:
    `ClassNotFoundException` - if the class isn't available to the usual ClassLoaders
    `IllegalAccessException` - if the class can't be instantiated through a public constructor
    `InstantiationException` - if there was an exception whilst instantiating the class
    `NoSuchMethodException` - if there isn't a no-args constructor on the class
    `InvocationTargetException` - if there was an exception whilst constructing the class

### newCheckedInstanceOf

    public static <T> T newCheckedInstanceOf(String className,
                                             Class<T> clazz)
                                  throws ClassNotFoundException,
                                         NoSuchMethodException,
                                         IllegalAccessException,
                                         InvocationTargetException,
                                         InstantiationException

  Loads, instantiates, and casts a Class using the default constructor.

  Type Parameters:
    `T` - The type to cast it to.
  Parameters:
    `className` - The class name.
    `clazz` - The class to cast it to.
  Returns:
    new instance of the class cast to `T`
  Throws:
    `ClassNotFoundException` - if the class isn't available to the usual ClassLoaders
    `IllegalAccessException` - if the class can't be instantiated through a public constructor
    `InstantiationException` - if there was an exception whilst instantiating the class
    `NoSuchMethodException` - if there isn't a no-args constructor on the class
    `InvocationTargetException` - if there was an exception whilst constructing the class
    `ClassCastException` - if the constructed object isn't type compatible with `T`

### isClassAvailable

    public static boolean isClassAvailable(String className)

  Determines if a named Class can be loaded or not.

  Parameters:
    `className` - The class name.
  Returns:
    `true` if the class could be found or `false` otherwise.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 1999-2015 Apache Software Foundation. All Rights Reserved.
Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, the Apache Logging project logo, and the Apache Log4j logo are trademarks of The Apache Software Foundation.