Encontrando todas as classes implementando uma interface específica [duplicado]

Esta pergunta já tem uma resposta aqui:

ncontre classes Java implementando uma interface [duplicata] 9 respostas

Estou no processo de desenvolvimento de um aplicativo (Quartz scheduler) em que temos uma classe de trabalho responsável por realmente executar o trabalho e precisamos informar / passar o nome da classe de trabalho enquanto cria um gatilho no Quartz scheduler.

Eu quero fornecer um ponto de extensão para todos que desejam usar a API (além de alguns trabalhos genéricos que fornecerei como parte da API). A idéia é criar uma interface (de marcador) e se alguém quiser declarar sua classe como classe de tarefa do planejador, tudo o que eles precisam fazer é implementar (declarar) a interfac

Não tenho certeza de como posso encontrar quais classes estão seguindo o contrato (implementando a interface) para que eu possa mostrá-las ao usuário que deseja agendar um acionador no agendado

Meu requisito não é carregar as classes em tempo de execução, mas mostrar a lista de classes que implementam a interface necessária para que o usuário possa selecionar a classe e o nome da classe possa ser passado ao agendador. É o agendador de quartzo que, no final, será responsável por criar uma instância da class

Alguém pode sugerir como atingir o objetivo acima ou existe outra maneira melhor de conseguir o que estou tentando fazer?

Edita

Passei pelo documento de ServiceLoader e parece que, para implementar um serviço, é necessário criar um arquivo na pasta META-INF com o nome da classe de implementação, o que me leva a pensar que se o usuário da minha API deseja 20 implementações diferentes, ele deve colocar 20 entradas no arquivo, o que para mim parece muito trabalho extra para o usuário final, pois cada classe de trabalho será criada para a execução de um trabalho específico e pode haver centenas de classes de trabalh

Corrija-me se minha suposição estiver errad

questionAnswers(12)

yourAnswerToTheQuestion