如何以在Gnome和KDE中工作的方式在JavaSwing中启动网站
正如我问的一个问题中的提纲 可以通过以下方式启动网站:如何以在Gnome和KDE中工作的方式在JavaSwing中启动网站,java,linux,swing,gnome,kde,Java,Linux,Swing,Gnome,Kde,正如我问的一个问题中的提纲 可以通过以下方式启动网站: Desktop.getDesktop().browse(new java.net.URI("www.google.com")); 这在Ubuntu(gnome)中运行良好,但在OpenSUSE(KDE)中似乎不起作用。关于这件事有一个错误 任何关于替代方法的想法都可以在Gnome和KDE中使用。strace-f查看执行的内容。我想知道java认为它是执行跨桌面浏览器的好方法。在等待Sun/Oracle的错误修复时,您可以找到用户的默认浏览
Desktop.getDesktop().browse(new java.net.URI("www.google.com"));
这在Ubuntu(gnome)中运行良好,但在OpenSUSE(KDE)中似乎不起作用。关于这件事有一个错误
任何关于替代方法的想法都可以在Gnome和KDE中使用。
strace-f
查看执行的内容。我想知道java认为它是执行跨桌面浏览器的好方法。在等待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作为解决方法,您可以运行标准命令在任何Linux桌面上打开文件或URL:
xdg open
应该可以,除非HTML“文件”的默认处理程序不正确,否则JDIC对我来说就像一个死项目。