Java: determine programaticamente todos os nomes de pacotes carregados no caminho de classe

Quaisquer sugestões sobre como abordar como eu descobriria uma lista denomes de pacotes que existem nocaminho de classe atual?

Isso precisa ser feito programaticamente em tempo de execução por uma das classes carregadas (e em execução) no caminho de classe (ou seja,De dentro para fora, não fora em).

Mais detalhes:

Uma abordagem que considerei foi usar a reflexão em cada uma das classes carregadas até agora pelo carregador de classes e extrair os nomes dos pacotes. No entanto, meu aplicativo já é executado em milhares de classes, portanto, preciso de uma abordagem mais eficiente.

Outra coisa que considerei foi algo análogo a descobrir quais arquivos JAR estavam no caminho da classe e, em seguida, faça a listagem de diretórios paralela para cada JAR. No entanto, não sei se isso é possível no aplicativo / como fazê-lo.

Pontos bônus

Pontos de bônus para quem sugere uma maneira de filtrar por pacotes de nível superior. Por exemplo. mostrar todos os pacotes que se enquadramcom.xyz ==>com.xyz.*, com.xyz.*.*

Obrigado!

questionAnswers(3)

yourAnswerToTheQuestion