如何在Linux下支持Desktop类?

时间:2011-11-24 13:52:03

标签: java linux hyperlink desktop

我正在编写一个java应用程序,我想在用户的默认Internet浏览器中打开我的程序中的链接。我试着像这样使用类桌面:

if (Desktop.isDesktopSupported()) {
    Desktop desktop = Desktop.getDesktop();
    if (desktop.isSupported(java.awt.Desktop.Action.BROWSE)) {
        try {
            URI uri = new URI(url); // url is a string containing the URL
            desktop.browse(uri);
        }
        catch (URISyntaxException ex) {
            Logger.getLogger(GUI.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}

然而,首先如果返回false。我的操作系统是Ubuntu的最新版本。有人知道如何在java中支持该桌面吗?

2 个答案:

答案 0 :(得分:8)

您本身不需要在Gnome桌面上运行java代码。您只需要安装Gnome库,以便Java识别它(如ccheneson所说)。

如果您运行的是新版本的Ubuntu,它不会附带gnome库,因为它使用Unity。尝试安装libgnome2-0。当我安装它时,其他一些软件包附带了它(libbonobo2-0libbonobo2-commonlibgnomevfs2-0libgnomevfs2-common)所以我不知道libgnome2-0是否足够或者如果有必要的话。但是后来我的12.04 Ubuntu系统被Java API认可了。

我知道这篇文章相对较旧 - 但这个问题在网上的各个地方,我发现“正确”答案的唯一地方(对我而言)是here

答案 1 :(得分:5)

来自this article

  

使用Desktop.isDesktopSupported()方法确定是否   桌面API可用。在Solaris操作系统和   在Linux平台上,这个API依赖于Gnome库。如果那些   库不可用,此方法将返回false。后   确定API是否受支持,即   isDesktopSupported()返回true,应用程序可以检索一个   使用静态方法getDesktop()的桌面实例。

尝试在Gnome桌面上运行代码。