java
このようにシェルコマンドを実行しようとします
if (Program.isPlatformLinux())
{
exec = "/bin/bash -c xdg-open \"" + file.getAbsolutePath() + "\"";
exec2 = "xdg-open \"" + file.getAbsolutePath() + "\"";
System.out.println(exec);
}
else
{
//other code
}
Runtime.getRuntime().exec(exec);
Runtime.getRuntime().exec(exec2);
しかし、何も起こりません。このコードを実行する/bin/bash -c xdg-open "/home/user/Desktop/file.txt"
と、コンソールに出力されますが、ファイルは開きません。また、最初に bash を呼び出してからxdg-open
-command を呼び出してみましたが、変化はありません。
ここで何が問題で、どうすれば解決できますか?
編集:呼び出しの出力は次のようになります。
xdg-open "/home/user/Desktop/files/einf in a- und b/allg fil/ref.txt" xdg-open: 予期しない引数 'in'
しかし、これは私には非常に奇妙に思えます-in
パス全体が引用符で囲まれている前に、コマンドが分離されているのはなぜですか?