public static void open( final URI uri )
            throws IOException
    {
        if ( Desktop.isDesktopSupported() ) {
            Desktop.getDesktop().browse( uri );
        } else if ( System.getenv( "DESKTOP_SESSION" ).startsWith( "KDE" ) ) {
            new ProcessBuilder( "kfmclient", "openURL", uri.toASCIIString() ).start();
        } else {
            // TODO i18n
            JOptionPane.showMessageDialog( null, uri.toString(), "URL", JOptionPane.INFORMATION_MESSAGE );
        }
    }