public List<String> getClassesFromJar(File jarFile) throws IOException {
    ArrayList<String> list = new ArrayList<>();
    try (JarInputStream jarInputStream = new JarInputStream(new FileInputStream(jarFile))) {
      JarEntry jarEntry;
      while (true) {
        jarEntry = jarInputStream.getNextJarEntry();
        if (null == jarEntry) {
          break;//
        }
        String s = jarEntry.getName();
        if (s.endsWith(".class")) {
          list.add(s.replace('/', '.').substring(0, s.length() - 6));
        }
      }
    } catch (IOException e) {
      throw e;
    }

    return list;
  }
Load classes (interface implementation) from directory.

@param <T>
@param dir  dir with classes, zip or jar's
@param type interface to load
@return
olv-core/src/main/java/pl/otros/logview/api/BaseLoader.java