正如我在上一个问题中提出的概述。
可以通过以下方式启动网站:
Desktop.getDesktop().browse(new java.net.URI("www.google.com"));
这在 Ubuntu(gnome)中运行良好,但在 OpenSUSE(KDE 风格)中似乎不起作用。Sun收到了一个关于此问题的错误。
任何关于替代方法的想法都适用于 Gnome 和 KDE。
作为一种解决方法,您可以运行标准命令在任何 Linux 桌面上打开文件或 URL xdg-open
:.
在等待 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;
}
}
如果您不介意使用额外的库,可以尝试 JDIC
strace -f
它并查看执行了什么。我想知道 java 认为它是跨桌面浏览器执行的好警察。