Determinar programáticamente qué JDK / JRE están instalados en mi caja

¿Hay una manera estándar de hacer esto? Me doy cuenta de que esto puede depender algo de la plataforma. Nuestro producto ahora solo es compatible con Windows, así que supongo que eso es lo que me interesa en este momento. Lo único que se me ocurre es escanear el registro o rastrear el sistema de archivos. Parece que el análisis del sistema de archivos puede llevar mucho tiempo, y el registro puede ser poco confiable. ¿Debo hacer ambas cosas? ¿Cualquier otra sugerencia? Intenté buscar una API para hacer esto sin suerte.

Respuestas a la pregunta(3)

Su respuesta a la pregunta