Como obtenho uma lista de pacotes e / ou classes no classpath?

Em Java, posso usar um ClassLoader para obter uma lista de classes que já estão carregadas e os pacotes dessas classes. Mas como faço para obter uma lista de classes que podem ser carregadas, ou seja, estão no caminho de classe? O mesmo com os pacotes.

Isto é para um compilador; ao analisar foo.bar.Baz, quero saber se foo é um pacote para diferenciá-lo de qualquer outra coisa.

questionAnswers(3)

yourAnswerToTheQuestion