Class Loader


  • public class Loader
    extends Object
    Load resources (or images) from various sources.
    Author:
    Ceki Gülcü
    • Constructor Detail

      • Loader

        public Loader()
    • Method Detail

      • getResource

        public static URL getResource​(String resource,
                                      Class clazz)
        Deprecated.
        as of 1.2.
        Get a resource by delegating to getResource(String).
        Parameters:
        resource - resource name
        clazz - class, ignored.
        Returns:
        URL to resource or null.
      • getResource

        public static URL getResource​(String resource)
        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, unless "log4j.ignoreTCL" system property was set to true.

        2. Search for resource using the class loader that loaded this class (Loader).

        3. In Pax Logging, Bundle.getResource(String) is first checked
        4. Try one last time with ClassLoader.getSystemResource(resource), that is is using the system class loader.

        Nota bene: In versions of reload4j 1.2.23 and earlier, the jaadoc documentation stated that the thread context class loader was used but when running under JDK 9 and later this was not actually the case. As of version 1.2.25, the javadoc corresponds to the original intention as documented.

        Parameters:
        resource - the resource to load
      • isJava1

        @Deprecated
        public static boolean isJava1()
        Deprecated.
        with no replacement
        Are we running under JDK 1.x?
      • loadClass

        public static Class loadClass​(String clazz)
                               throws ClassNotFoundException
        Load the specified class using the method.

        Nota bene: In versions of reload4j 1.2.23 and earlier, the documentation stated that the thread context class loader was used to load the specified class but when running under JDK 9 and later this was not actually the case. As of version 1.2.24, the javadoc above matches the code as executed.

        In pax-logging, TCCL is always checked first, then Bundle.loadClass(String) eventually Class.forName(String) is called.
        Parameters:
        clazz - the name of class to load
        Throws:
        ClassNotFoundException