ClasspathResourceLoader (Lucene 10.5.1 core API)
Description: declaration: package: org.apache.lucene.util, class: ClasspathResourceLoader

Package org.apache.lucene.util

# Class ClasspathResourceLoader

java.lang.Object
org.apache.lucene.util.ClasspathResourceLoader

All Implemented Interfaces:
  `ResourceLoader`

public final class ClasspathResourceLoader extends Object implements ResourceLoader
Simple `ResourceLoader` that uses `ClassLoader.getResourceAsStream(String)` and `Class.forName(String,boolean,ClassLoader)` to open resources and classes, respectively.

To use this class with the Java Module System, you must open all modules on classpath that contain resources to the `org.apache.lucene.core` module, otherwise resources can't be looked up. It is recommended to use `ModuleResourceLoader` for such use cases as this would limit to certain modules.

See Also:
  - `ModuleResourceLoader`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ClasspathResourceLoader(Class<?> clazz)`
  Creates an instance using the context classloader to load Resources and classes Resources are resolved relative to the given class, if path is not absolute.
  `ClasspathResourceLoader(ClassLoader loader)`
  Creates an instance using the given classloader to load Resources and classes.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `<T> Class<? extends T>`
  `findClass(String cname, Class<T> expectedType)`
  Finds class of the name and expected type
  `InputStream`
  `openResource(String resource)`
  Opens a named resource

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

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

  ### Methods inherited from interface org.apache.lucene.util.ResourceLoader

  `newInstance`

- ## Constructor Details

  - ### ClasspathResourceLoader

    public ClasspathResourceLoader(ClassLoader loader)
    Creates an instance using the given classloader to load Resources and classes. Resource paths must be absolute.

  - ### ClasspathResourceLoader

    public ClasspathResourceLoader(Class<?> clazz)
    Creates an instance using the context classloader to load Resources and classes Resources are resolved relative to the given class, if path is not absolute.

- ## Method Details

  - ### openResource

    public InputStream openResource(String resource) throws IOException
    Description copied from interface: `ResourceLoader`
    Opens a named resource
    Specified by:
      `openResource` in interface `ResourceLoader`
    Throws:
      `IOException`

  - ### findClass

    public <T> Class<? extends T> findClass(String cname, Class<T> expectedType)
    Description copied from interface: `ResourceLoader`
    Finds class of the name and expected type
    Specified by:
      `findClass` in interface `ResourceLoader`