En développant une petite application en Swing servant d’explorateur de fichiers sur un WebDav, je me suis rendu compte qu’il aurait été sympa de visualiser les fichiers distants. Plutôt que de télécharger en local, puis d’utiliser Windows pour rechercher ce fichier et double-cliquer dessus, pourquoi ne pas s’appuyer sur le navigateur pour gérer le content-type.
La question est : comment passer la patate chaude au navigateur depuis une application en Java?
Je me suis appuyé sur cet excellent article : Java Tip 66 et cette librairie : BrowserLauncher
[codesyntax lang="java5"]import java.util.List; import edu.stanford.ejalbert.BrowserLauncher; import edu.stanford.ejalbert.exception.BrowserLaunchingInitializingException; import edu.stanford.ejalbert.exception.UnsupportedOperatingSystemException; public class Main { /** * @param args */ @SuppressWarnings("unchecked") public static void main(final String[] args) { try { final BrowserLauncher launcher = new BrowserLauncher(); // Afficher la liste des navigateurs disponibles final List browsers = launcher.getBrowserList(); for (final String nav : browsers) { System.out.println(nav); } launcher.openURLinBrowser(args[0]); } catch (final BrowserLaunchingInitializingException e) { e.printStackTrace(); } catch (final UnsupportedOperatingSystemException e) { e.printStackTrace(); } } }[/codesyntax]
Et voilà, c’est tout bête. Je vous encourage à aller visiter le site de BrowserLauncher ainsi que son API bien fournie.