public void scanArchives(URL... urls) throws IOException
   {
      for (URL url : urls)
      {
         Filter filter = new Filter()
         {
            public boolean accepts(String filename)
            {
               if (filename.endsWith(".class"))
               {
                  if (filename.startsWith("/") || filename.startsWith("\\"))
                      filename = filename.substring(1);
                  if (!ignoreScan(filename.replace('/', '.')))
                      return true;
                  //System.out.println("IGNORED: " + filename);
               }
               return false;
            }
         };

          try
          {
              StreamIterator it = IteratorFactory.create(url, filter);

              InputStream stream;
              while ((stream = it.next()) != null) scanClass(stream);
          }
          catch (IOException e)
          {
              if (ignoreBadURLs)
                  continue;
              else
                  throw e;
          }
      }

   }