Если вам действительно нужно сделать это, единственный реальный способ - это перебирать путь к классам, сканировать файлы jar и каталоги для файлов классов, загружать этот класс и смотреть на его родительский класс.
Обратите внимание, что некоторые классы будут иметь статический код инициализации, который может иметь плохие побочные эффекты, например загрузка классов X11 из среды выполнения может зависать очень долго. Если возможно, попытайтесь ограничить классы, которые вы загружаете, конкретными пакетами, например, com.company (вы, конечно, можете идентифицировать пакет по пути к файлу класса относительно корня к элементу classpath).
[Обратите внимание, что ServiceLoader, предложенный Joachim Sauer, или среда, которая обеспечивает аналогичный механизм, является гораздо лучшим решением]