如何在Java Swing中以Gnome和KDE的方式启动网站

正如上一个问题的提纲,我问道。

一个网站可以通过这样做启动:

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

这在Ubuntu(gnome)中工作正常,但在OpenSUSE(KDE风格)中似乎不起作用。 Sun有一个关于这个问题的bug。

任何想办法做到这一点,这将在侏儒和KDE。

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

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

在等待来自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; } } 

strace -f ,看看执行什么。 我不知道java认为这是一个很好的警察,执行跨桌面浏览器。

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