public static Map<String, CompiledClass> parseClassFilesInDir(File buildDir) {
    Map<String, CompiledClass> result = new HashMap<>();
    for (File entry : buildDir.listFiles()) {
      if (entry.isDirectory()) {
        result.putAll(parseClassFilesInDir(entry));
      } else if (entry.getName().endsWith(".class")) {
        try (FileInputStream fis = new FileInputStream(entry)) {
          CompiledClass parsed = CompiledClass.getInstance(fis);
          if (!parsed.isInterface()) {
            result.put(parsed.fullyQualifiedName(), parsed);
          }
        } catch (IOException e) {
          System.err.println("Exception while parsing " + entry.getName() + ": " + e.getMessage());
        }
      }
    }
    return result;
  }
Parse the files in the given jar file and return a map of name-&gt;CompiledClass. Any IO
exceptions are consumed by this method and written to stderr.

@param jar the jar file holding classes
@return a map of name-&gt;CompiledClass
geode-junit/src/main/java/org/apache/geode/codeAnalysis/CompiledClassUtils.java