@Beta public final class ClassPath extends java.lang.Object
ClassLoader and finds all loadable classes and resources.
Warning: Currently only URLClassLoader and only file:// urls are
supported.
| Modifier and Type | Class | Description |
|---|---|---|
static class |
ClassPath.ClassInfo |
Represents a class that can be loaded through
ClassPath.ClassInfo.load(). |
static class |
ClassPath.ResourceInfo |
Represents a class path resource that can be either a class file or any other resource file
loadable from the class path.
|
| Modifier and Type | Method | Description |
|---|---|---|
static ClassPath |
from(java.lang.ClassLoader classloader) |
Returns a
ClassPath representing all classes and resources loadable from
classloader and its parent class loaders. |
ImmutableSet<ClassPath.ClassInfo> |
getAllClasses() |
Returns all classes loadable from the current class path.
|
ImmutableSet<ClassPath.ResourceInfo> |
getResources() |
Returns all resources loadable from the current class path, including the class files of all
loadable classes but excluding the "META-INF/MANIFEST.MF" file.
|
ImmutableSet<ClassPath.ClassInfo> |
getTopLevelClasses() |
Returns all top level classes loadable from the current class path.
|
ImmutableSet<ClassPath.ClassInfo> |
getTopLevelClasses(java.lang.String packageName) |
Returns all top level classes whose package name is
packageName. |
ImmutableSet<ClassPath.ClassInfo> |
getTopLevelClassesRecursive(java.lang.String packageName) |
Returns all top level classes whose package name is
packageName or starts with
packageName followed by a '.'. |
public static ClassPath from(java.lang.ClassLoader classloader) throws java.io.IOException
ClassPath representing all classes and resources loadable from
classloader and its parent class loaders.
Warning: Currently only URLClassLoader and only file:// urls are
supported.
java.io.IOException - if the attempt to read class path resources (jar files or directories)
failed.public ImmutableSet<ClassPath.ResourceInfo> getResources()
public ImmutableSet<ClassPath.ClassInfo> getAllClasses()
public ImmutableSet<ClassPath.ClassInfo> getTopLevelClasses()
public ImmutableSet<ClassPath.ClassInfo> getTopLevelClasses(java.lang.String packageName)
packageName.public ImmutableSet<ClassPath.ClassInfo> getTopLevelClassesRecursive(java.lang.String packageName)
packageName or starts with
packageName followed by a '.'.