@Beta public final class ClassPath extends Object
ClassLoader
and finds all loadable classes and resources.
Warning: Currently only URLClassLoader
and only file://
urls are
supported.
In the case of directory classloaders, symlinks are supported but cycles are not traversed. This guarantees discovery of each unique loadable resource. However, not all possible aliases for resources on cyclic paths will be listed.
Modifier and Type | Class and 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 and Description |
---|---|
static ClassPath |
from(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(String packageName)
Returns all top level classes whose package name is
packageName . |
ImmutableSet<ClassPath.ClassInfo> |
getTopLevelClassesRecursive(String packageName)
Returns all top level classes whose package name is
packageName or starts with
packageName followed by a '.'. |
public static ClassPath from(ClassLoader classloader) throws 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.
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(String packageName)
packageName
.public ImmutableSet<ClassPath.ClassInfo> getTopLevelClassesRecursive(String packageName)
packageName
or starts with
packageName
followed by a '.'.Copyright © 2010–2017. All rights reserved.