Determinar programaticamente quais JDK / JREs estão instalados na minha caixa

Existe uma maneira padrão de fazer isso? Eu percebo que isso pode ser um pouco dependente da plataforma. Nosso produto agora é suportado apenas no Windows - então, suponho que isso seja o que me interessa agora. As únicas coisas em que consigo pensar são verificar o registro ou rastrear o sistema de arquivos. A verificação do sistema de arquivos parece levar muito tempo - e o registro pode não ser confiável. Eu deveria fazer as duas coisas? Alguma outra sugestão? Eu tentei procurar uma API para fazer isso sem sorte.

questionAnswers(3)

yourAnswerToTheQuestion