我正在编写一个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中支持该桌面吗?
答案 0 :(得分: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认可了。
我知道这篇文章相对较旧 - 但这个问题在网上的各个地方,我发现“正确”答案的唯一地方(对我而言)是here
答案 1 :(得分:5)
使用Desktop.isDesktopSupported()方法确定是否 桌面API可用。在Solaris操作系统和 在Linux平台上,这个API依赖于Gnome库。如果那些 库不可用,此方法将返回false。后 确定API是否受支持,即 isDesktopSupported()返回true,应用程序可以检索一个 使用静态方法getDesktop()的桌面实例。
尝试在Gnome桌面上运行代码。