以前の質問で概説したように、私は尋ねました。
Web サイトは次のようにして起動できます。
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;
}
}
strace -f
それを実行して、何が実行されるかを確認します。クロスデスクトップブラウザの実行に適したポリシーだとJavaが考えているのだろうか。
追加のライブラリを使用してもかまわない場合は、JDIC を試すことができます