Class ClassLoaders
- java.lang.Object
-
- org.codehaus.commons.compiler.lang.ClassLoaders
-
public final class ClassLoaders extends java.lang.ObjectUtility methods around theClassLoader.
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.ClassLoaderBOOTCLASSPATH_CLASS_LOADERTheClassLoaderthat loads the classes on the currently executing JVM's "boot class path", i.e. the JARs in the JRE's "lib" and "lib/ext" directories, but not the JARs and class directories specified through the--classpathcommand line option.static java.lang.ClassLoaderCLASSPATH_CLASS_LOADERTheClassLoaderthat loads the classes on the currently executing JVM's "class path", i.e. the JARs in the JRE's "lib" and "lib/ext" directories, and the JARs and class directories specified through the class path.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.lang.ClassLoadergetsResourceAsStream(ResourceFinder finder, java.lang.ClassLoader parent)Creates and returns aClassLoaderthat implementsClassLoader.getResourceAsStream(String)via aResourceFinder.static java.util.Map<java.lang.String,java.net.URL>getSubresources(java.lang.ClassLoader classLoader, java.lang.String name, boolean includeDirectories, boolean recurse)Returns a name-to-URL mapping of all resources "under" a given directory name.static java.util.Map<java.lang.String,java.net.URL>getSubresourcesOf(java.net.URL root, java.lang.String rootName, boolean includeDirectories, boolean recurse)Returns a name-to-URL mapping of all resources "under" a given root resource.
-
-
-
Field Detail
-
CLASSPATH_CLASS_LOADER
public static final java.lang.ClassLoader CLASSPATH_CLASS_LOADER
TheClassLoaderthat loads the classes on the currently executing JVM's "class path", i.e. the JARs in the JRE's "lib" and "lib/ext" directories, and the JARs and class directories specified through the class path.
-
BOOTCLASSPATH_CLASS_LOADER
public static final java.lang.ClassLoader BOOTCLASSPATH_CLASS_LOADER
TheClassLoaderthat loads the classes on the currently executing JVM's "boot class path", i.e. the JARs in the JRE's "lib" and "lib/ext" directories, but not the JARs and class directories specified through the--classpathcommand line option.
-
-
Method Detail
-
getsResourceAsStream
public static java.lang.ClassLoader getsResourceAsStream(ResourceFinder finder, @Nullable java.lang.ClassLoader parent)
Creates and returns aClassLoaderthat implementsClassLoader.getResourceAsStream(String)via aResourceFinder.ClassLoader.getResource(String)returns a non-nullvalue iff then resoure finder finds aLocatableResource.Notice that
ClassLoader.getResources(String)is not overridden.
-
getSubresources
public static java.util.Map<java.lang.String,java.net.URL> getSubresources(@Nullable java.lang.ClassLoader classLoader, java.lang.String name, boolean includeDirectories, boolean recurse) throws java.io.IOException
Returns a name-to-URL mapping of all resources "under" a given directory name.Iff the name does not end with a slash, then calling this method is equivalent with calling
ClassLoader.getResource(String).Otherwise, if the name does end with a slash, then this method returns a name-to-URL mapping of all content resources who's names begin with the given name. Iff recurse is
false, then only immediate subresources are included. Iff includeDirectories istrue, then also directory resources are included in the result set; their names all ending with a slash.If multiple resources have the name, then the resources are retrieved from the first occurrence.
- Parameters:
classLoader- The class loader to use;nullmeans use the system class loadername- No leading slash- Returns:
- Keys ending with a slash map to "directory resources", the other keys map to "content resources"
- Throws:
java.io.IOException
-
getSubresourcesOf
public static java.util.Map<java.lang.String,java.net.URL> getSubresourcesOf(java.net.URL root, java.lang.String rootName, boolean includeDirectories, boolean recurse) throws java.io.IOExceptionReturns a name-to-URL mapping of all resources "under" a given root resource.If the root designates a "content resource" (as opposed to a "directory resource"), then the method returns
Collections.singletonMap(name, rootName).Otherwise, if the root designates a "directory resource", then this method returns a name-to-URL mapping of all content resources that are located "under" the root resource. Iff recurse is
false, then only immediate subresources are included. Iff includeDirectories istrue, then directory resources are also included in the result set; their names all ending with a slash.- Returns:
- Keys ending with a slash map to "directory resources", the other keys map to "content resources"
- Throws:
java.io.IOException
-
-