Как запустить веб-сайт на Java Swing таким образом, чтобы он работал в Gnome и KDE - PullRequest
2 голосов
/ 08 февраля 2010

Как набросок в предыдущем вопросе, который я задал.

Веб-сайт может быть запущен следующим образом:

Desktop.getDesktop().browse(new java.net.URI("www.google.com"));

Это прекрасно работает в Ubuntu (gnome), но, похоже, не работает в OpenSUSE (разновидность KDE). Об этом есть сообщение об ошибке Sun .

Любые идеи об альтернативных способах сделать это, которые будут работать как в Gnome, так и в KDE.

Ответы [ 4 ]

2 голосов
/ 18 февраля 2010

В качестве обходного пути вы можете запустить стандартную команду для открытия файлов или URL-адресов на любом рабочем столе Linux: xdg-open.

http://portland.freedesktop.org/xdg-utils-1.0/xdg-open.html

1 голос
/ 08 февраля 2010

В ожидании исправления ошибки от Sun / Oracle вы можете найти браузер пользователя по умолчанию и вызвать его самостоятельно, используя класс ProcessBuilder. Вы можете найти браузер по умолчанию в gnome, используя утилиту gnonftool-2. Я не уверен, как в KDE. Вот пример, где я пытаюсь выяснить, запускает ли пользователь Clearlooks на gnome:

private boolean usingClearlooks() {
    try {
        File gconf = new File("/usr/bin/gconftool-2");
        if(gconf.exists() == false) {
            return false;
        }
        ProcessBuilder pb = new ProcessBuilder(gconf.getAbsolutePath(), "-g", "/desktop/gnome/interface/gtk_theme");
        Process psProc = pb.start();
        psProc.waitFor();
        BufferedReader br = new BufferedReader(new InputStreamReader(psProc.getInputStream()));
        boolean clearlooks = false;
        String line = null;
        while((line=br.readLine()) != null) {                                                       
            if ((line.toLowerCase().contains("clearlooks"))) {
                clearlooks = true;
                break;
            }
        }
        return clearlooks;
    }
    catch(Exception e) {
        e.printStackTrace();
        return false;
    }
}
0 голосов
/ 08 февраля 2010

Если вы не возражаете против использования дополнительной библиотеки, вы можете попробовать JDIC

0 голосов
/ 08 февраля 2010

strace -f это и посмотри, что исполняется. Интересно, что думает Java, что это хорошая полиция для кросс-десктопного браузера

...