Откройте браузер в более старой версии Java - PullRequest
1 голос
/ 30 июня 2011

Я пытаюсь открыть URI в браузере из приложения Java.Я знаю, что в текущей версии Java это можно сделать с помощью java.awt.Desktop, но этот класс недоступен в более ранних версиях Java, таких как 1.5, что я и использую.Есть ли способ открыть браузер по умолчанию с заданным URI в более ранних версиях Java?

Ответы [ 2 ]

3 голосов
/ 30 июня 2011

Я думаю, что это должно сработать

import java.lang.reflect.Method;
import javax.swing.JOptionPane;

public class BareBonesBrowserLaunch {

    private static final String errMsg = "Error attempting to launch web browser";

    public static void openURL(String url) {
        String osName = System.getProperty("os.name");
        try {
            if (osName.startsWith("Mac OS")) {
                Class fileMgr = Class.forName("com.apple.eio.FileManager");
                Method openURL = fileMgr.getDeclaredMethod("openURL", new Class[] {String.class});
                openURL.invoke(null, new Object[] {url});
            } else if (osName.startsWith("Windows")) {
                Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + url);
            } else { //assume Unix or Linux
                String[] browsers = { "firefox", "opera", "konqueror", "epiphany", "mozilla", "netscape" };
                String browser = null;
                for (int count = 0; count < browsers.length && browser == null; count++) {
                    if (Runtime.getRuntime().exec(new String[] {"which", browsers[count]}).waitFor() == 0) {
                        browser = browsers[count];
                    }
                }
                if (browser == null) {
                    throw new Exception("Could not find web browser");
                } else {
                    Runtime.getRuntime().exec(new String[] {browser, url});
                }
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, errMsg + ":\n" + e.getLocalizedMessage());
        }
    }
}
1 голос
/ 30 июня 2011
  1. Для графического интерфейса расширенного клиента, запущенного с использованием Java Web Start , используйте метод BasicService.showDocument (URL) .Вот небольшая демоверсия .BasicService .
  2. Для приложений, не запускаемых через Интернет, используйте BrowserLauncher2 :

    .. библиотека, которая облегчает открытие браузера из приложения Javaи направление браузера на предоставленный URL.В большинстве случаев открытый браузер будет браузером пользователя по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...