1
我正在使用Java SE 6,並希望通過預定義的程序在外部進程中打開文件。目前我使用PDF文件的下面的代碼,例如:Java SE 6:如何在Ubuntu Linux上通過Runtime.getRuntime()。exec()從外部打開文件?
的Windows:
public static Process openFile(File file) {
return Runtime.getRuntime().exec("C:/Program Files (x86)/Adobe/Reader 10.0/Reader/AcroRd32.exe \""+file.getAbsolutePath()+"\"");
}
Ubuntu Linux操作系統:
public static Process openFile(File file) {
return Runtime.getRuntime().exec("/usr/bin/evince \""+file.getAbsolutePath()+"\"");
}
在Windows上工作得很好,對所有文件。但在Ubuntu上,只要文件路徑中有空格,它就會嘗試打開多個文件。這裏有一個例子:
contract.pdf -> works on windows and ubuntu
contract 1 (copy).pdf -> works only on windows, ubuntu tries to open 3 different files (contract, 1, and (copy).pdf)
contract.pdf -> works on windows and ubuntu
contract 1 (copy).pdf -> works only on windows, ubuntu tries to open 3 different files (contract, 1, and (copy).pdf)
什麼特殊字符我需要告訴ubuntu它應該處理文件路徑與空格作爲一個文件?
感謝您的幫助提前! 最好的問候
嗨彼得。非常感謝您的快速回答!我無法使用Desktop.open,因爲我需要Process對象來跟蹤文件狀態。但你的第二個建議只是完美的! – salocinx
第二個選項假定您已經打破了所有參數。 ;) –
是的,我認爲:-)謝謝。 – salocinx