Class ClassPath


  • @Beta
    public final class ClassPath
    extends java.lang.Object
    Scans the source of a ClassLoader and finds all loadable classes and resources.

    Warning: Currently only URLClassLoader and only file:// urls are supported.

    Since:
    14.0
    • Field Detail

      • logger

        private static final java.util.logging.Logger logger
      • CLASS_PATH_ATTRIBUTE_SEPARATOR

        private static final Splitter CLASS_PATH_ATTRIBUTE_SEPARATOR
        Separator for the Class-Path manifest attribute value in jar files.
      • CLASS_FILE_NAME_EXTENSION

        private static final java.lang.String CLASS_FILE_NAME_EXTENSION
        See Also:
        Constant Field Values
    • Method Detail

      • from

        public static ClassPath from​(java.lang.ClassLoader classloader)
                              throws java.io.IOException
        Returns a ClassPath representing all classes and resources loadable from classloader and its parent class loaders.

        Warning: Currently only URLClassLoader and only file:// urls are supported.

        Throws:
        java.io.IOException - if the attempt to read class path resources (jar files or directories) failed.
      • getResources

        public 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.
      • getTopLevelClasses

        public ImmutableSet<ClassPath.ClassInfo> getTopLevelClasses​(java.lang.String packageName)
        Returns all top level classes whose package name is packageName.
      • getTopLevelClassesRecursive

        public 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 '.'.
      • getClassName

        static java.lang.String getClassName​(java.lang.String filename)