Mi pare di capire che tu abbia bisogno di aprire un qualsiasi file, senza sapere se esso e', ad esempio, una lettera, un mp3 o una pagina html, giusto?
Inoltre vuoi che cio' venga fatto dai programmi predefiniti del SO.
Il problema non mi pare tanto di java, quanto di sistema operativo. Secondo me dovresti studiarti la documentazione relativa a tutti i SO su cui vuoi far girare il tuo programma, e vedere come fare per risalire alle associazioni dei file, e quindi chiamare i relativi programmi.
Solo una curiosita': a cosa ti serve?