BcelTypeArrayBuilder.createClassSet(newJars, loader2, classSelector);
tab2.createClassSet(newJars, loader2, classSelector);
    private void run(String[] args)    {        Options options = defineOptions();        CommandLine cmdline = parseCommandLine(args, options);        String oldPath = cmdline.getOptionValue('o');        String newPath = cmdline.getOptionValue('n');        String oldClassPath = cmdline.getOptionValue("ocp");        String newClassPath = cmdline.getOptionValue("ncp");        String style = cmdline.getOptionValue('s', "text");        String outputFileName = cmdline.getOptionValue('f');        String[] includePkgs = cmdline.getOptionValues('i');        boolean showAll = cmdline.hasOption('a');        boolean showPkg = cmdline.hasOption('p');        if ((oldPath == null) || (newPath == null))        {            usage(options);            System.exit(-1);        }        Checker checker = new Checker();        if (showAll)        {            checker.getScopeSelector().setScope(Scope.PRIVATE);        }        else if (showPkg)        {            checker.getScopeSelector().setScope(Scope.PACKAGE);        }        ClassSelector classSelector;        if ((includePkgs != null) && (includePkgs.length > 0))        {            classSelector = new ClassSelector(ClassSelector.MODE_IF);            for (int i = 0; i < includePkgs.length; ++i)            {                classSelector.addPackageTree(includePkgs[i]);            }        }        else        {            // a selector that selects everything            classSelector = new ClassSelector(ClassSelector.MODE_UNLESS);        }        DiffListener diffListener = null;        if (style.equals("text"))        {            try            {                diffListener = new PlainDiffListener(outputFileName);            }            catch (IOException ex)            {                System.err.println("Invalid output file name.");            }        }        else if (style.equals("xml"))        {            try            {                diffListener = new XmlDiffListener(outputFileName);            }            catch (IOException ex)            {                System.err.println("Invalid output file name.");            }        }        else        {            System.err.println("Invalid style option. Must be one of 'text', 'xml'.");            usage(options);            System.exit(-1);        }        File[] origJars = pathToFileArray(oldPath);        File[] newJars = pathToFileArray(newPath);        checker.addDiffListener(diffListener);        try        {            ClassLoader loader1 = new URLClassLoader(convertFilesToURLs(pathToFileArray(oldClassPath)));            ClassLoader loader2 = new URLClassLoader(convertFilesToURLs(pathToFileArray(newClassPath)));            final JavaType[] origClasses =                BcelTypeArrayBuilder.createClassSet(origJars, loader1, classSelector);                        final JavaType[] newClasses =                BcelTypeArrayBuilder.createClassSet(newJars, loader2, classSelector);                        checker.reportDiffs(origClasses, newClasses);                        System.exit(0);        }        catch (CheckerException ex)        {            System.err.println("Unable to complete checks:" + ex.getMessage());            System.exit(1);        }        catch (MalformedURLException ex)        {            System.err.println("Unable to create classloader for 3rd party classes:" + ex.getMessage());            System.err.println("old classpath: " + oldClassPath);            System.err.println("new classpath: " + newClassPath);            System.exit(1);        }    }