code: static Class<?> findClassFromClassLoaders(final String className, final Iterable<ClassLoader> classLoaders)
          throws ClassNotFoundException, IllegalArgumentException {
          // Precondition checks
          assert className != null && className.length() > 0 : "Class Name must be specified";
          assert classLoaders != null : "ClassLoaders as search path must be specified";
  
          // Find the class by searching through the CLs in order
          Class<?> clazz = null;
          for (final ClassLoader cl : classLoaders) {
              try {
                  clazz = Class.forName(className, false, cl);
                  if (log.isLoggable(Level.FINER)) {
                      log.finer("Found requested class " + clazz.getName() + " from ClassLoader "
                          + clazz.getClassLoader());
                  }
              } catch (final ClassNotFoundException cnfe) {
                  // Ignore here, try the next
              }
  
          }
          // If we haven't got a class yet, now we need to show we've got CNFE
          if (clazz == null) {
              throw new ClassNotFoundException("Could not find requested class \"" + className
                  + "\" in any of the associated ClassLoaders: " + classLoaders);
          }
  
          // Return
          return clazz;
      }
docs: Finds a {@link Class} by name using a series of {@link ClassLoader}s as the search path
  
  @param className
  @param classLoaders
  @return
  @throws ClassNotFoundException
  If the {@link Class} could not be found in any of the specified CLs