ClassLoaderUtils { @Nonnull public static Set<Class<?>> getLoadedClasses(ClassLoader classLoader) throws UnsupportedOperationException { final Set<Class<?>> classesSet; try { List<Class<?>> classes = (List<Class<?>>) FieldUtils.readField(classLoader, "classes", true); classesSet = Sets.newLinkedHashSet(classes); } catch (IllegalAccessException e) { throw jvmUnsupportedOperationException(e); } return Collections.unmodifiableSet(Sets.newLinkedHashSet(classesSet)); }  static int getLoadedClassCount(); static long getUnloadedClassCount(); static boolean isVerbose(); static void setVerbose(boolean value); static long getTotalLoadedClassCount(); static Set<Class<?>> findLoadedClasses(ClassLoader classLoader, Set<String> classNames); static boolean isLoadedClass(ClassLoader classLoader, Class<?> type); static boolean isLoadedClass(ClassLoader classLoader, String className); static Class<?> findLoadedClass(ClassLoader classLoader, String className); @Nullable static Class<?> loadClass(@Nonnull ClassLoader classLoader, @Nonnull String className); static Set<URL> getResources(ClassLoader classLoader, ResourceType resourceType, String resourceName); static Set<URL> getResources(ClassLoader classLoader, String resourceName); static URL getResource(ClassLoader classLoader, String resourceName); static URL getResource(ClassLoader classLoader, ResourceType resourceType, String resourceName); static URL getClassResource(ClassLoader classLoader, String className); static URL getClassResource(ClassLoader classLoader, Class<?> type); @Nonnull static Set<ClassLoader> getInheritableClassLoaders(ClassLoader classLoader); @Nonnull static Map<ClassLoader, Set<Class<?>>> getAllLoadedClassesMap(ClassLoader classLoader); @Nonnull static Set<Class<?>> getAllLoadedClasses(ClassLoader classLoader); @Nonnull static Set<Class<?>> getLoadedClasses(ClassLoader classLoader); static Set<Class<?>> findLoadedClassesInClassPath(ClassLoader classLoader); static Set<Class<?>> findLoadedClassesInClassPaths(ClassLoader classLoader, Set<String> classPaths); static Set<Class<?>> findLoadedClassesInClassPath(ClassLoader classLoader, String classPath);  }
@Test public void testGetLoadedClasses() { Set<Class<?>> classesSet = ClassLoaderUtils.getLoadedClasses(classLoader); Assert.assertNotNull(classesSet); Assert.assertFalse(classesSet.isEmpty()); classesSet = ClassLoaderUtils.getLoadedClasses(ClassLoader.getSystemClassLoader()); Assert.assertNotNull(classesSet); Assert.assertFalse(classesSet.isEmpty()); echo(classesSet); }