Ma quando il file viene aperto con il classico doppio-click, fa storie? Java (dalla versione 6, se non erro), mette a disposizione la classe Desktop (prima era nella libreria jdic, poi fagocitata da java 6) per interagire con i programmi/reader standard della macchina su cui il l'applicazione gira.