如何在Java Swing中以一种适用于Gnome和KDE的方式启动网站

时间:2010-02-08 17:40:58

标签: java linux swing gnome kde

我问过previous问题中的大纲。

可以通过以下方式启动网站:

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

这在Ubuntu(gnome)中运行良好,但它似乎不适用于OpenSUSE(KDE风格)。 Sun提出了一个关于此问题的错误。

关于其他方法的任何想法都可以在Gnome和KDE中使用。

4 个答案:

答案 0 :(得分:2)

作为解决方法,您可以运行标准命令在任何Linux桌面上打开文件或URL:xdg-open

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

答案 1 :(得分:1)

在等待Sun / Oracle的错误修复时,您可以找到用户的默认浏览器并使用ProcessBuilder类自行调用它。您可以使用gnonftool-2实用程序在gnome中找到默认浏览器。我不确定在KDE中怎么样。这是一个例子,我试图找出用户是否在gnome上运行Clearlooks:

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;
    }
}

答案 2 :(得分:0)

strace -f它,看看会执行什么。我想知道java认为它对于跨桌面浏览器执行来说是个好警察。

答案 3 :(得分:0)

如果您不介意使用额外的库,可以尝试使用JDIC