如何在Linux下支持Desktop类?

kol*_*leS 8 java linux desktop hyperlink

我正在编写一个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);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

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

小智 8

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

如果您正在运行新版本的Ubuntu,它不会附带gnome库,因为它使用Unity.尝试安装libgnome2-0.当我安装了其他几个包用它来了(libbonobo2-0,libbonobo2-common,libgnomevfs2-0,libgnomevfs2-common),所以我不知道是否libgnome2-0是足够的,或者任何其他的都是必要的,也是.但是后来我的12.04 Ubuntu系统被Java API认可了.

我知道这篇文章相对较老 - 但这个问题在网上的各个地方,我发现"正确"答案(对我而言)的唯一地方就在这里


cch*_*son 5

这篇文章

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

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

  • 以下是KDE支持的问题报告:http://bugs.sun.com/view_bug.do?video_id = 6486393 5年后没有更新... :-( (6认同)