public static Iterator<String> getClassNames(String pkgName, Class<?> searchClass) {
        	
        HashSet<String> classNames = new HashSet<String>();

        String classPath = System.getProperty("java.class.path");
        if (classPath == null || classPath.trim().length() == 0) {
            classPath = System.getProperty("user.dir");
        }
        String javaHome = System.getProperty("java.home");

        StringTokenizer st = new StringTokenizer(classPath, File.pathSeparator);
        
        while (st.hasMoreElements()) {
            String path = (String)st.nextElement();
            if (path.startsWith(javaHome)) {
                continue;
            }
            
            if (path.endsWith(".jar") || path.endsWith(".zip")) {
                // look for all classes in the class path
                findClassesInJar(path, pkgName, searchClass, classNames);
            }
            else {
                File f = new File(path);
                if (!f.isDirectory()) {
                    continue;
                }
                findClassesInPath(path, pkgName, searchClass, classNames);
            }
        }
        return classNames.iterator();
    }
Get all class names within the named package which extend or implement the 
specified search class.
@param pkgName package name
@param searchClass base or interface class to search for.
Ghidra/Framework/Generic/src/main/java/ghidra/util/TestSuiteUtilities.java