public static List> getClassesOfPackage(String packageName) { InputStream stream = ClassLoader.getSystemClassLoader().getResourceAsStream(packageName.replaceAll("[.]", "/")); if (stream == null) return new ArrayList<>(); BufferedReader reader = new BufferedReader(new InputStreamReader(stream)); return reader.lines() .filter(line -> line.endsWith(".class")) .map(line -> { try { return Class.forName(packageName + "." + line.substring(0, line.lastIndexOf('.'))); } catch (ClassNotFoundException e) { e.printStackTrace(); } return null; }) .collect(Collectors.toList()); }