2016-12-15 26 views
0

我知道,我們可以打開編輯使用Java一個圖像文件e.t.c,這裏是我的例子:Java - 如何使用特定程序編輯文件?

File file = new File("c:\\Users\\Aleksa\\Desktop\\Logo.png"); 
Desktop.getDesktop().edit(file); 

現在,我想知道,我怎麼打開特定的應用程序來編輯該文件。 例如,Java會檢查我是否擁有「Abdobe PhotoShop」,如果是,則在Photo Shop中打開文件,而不是像繪畫一樣打開文件。 以及如何打開特定的編輯器來編輯文件?

- 感謝您的幫助。

+0

這取決於應用程序,但通常會運行可執行文件並將文件打開指定爲參數,例如, '「C:\ Program Files(x86)\ Notepad ++ \ notepad ++。exe」「C:\ Users \ Salmeh \ Desktop \ hello.txt」'。至於如何從Java運行程序,網絡上有大量示例。 – Andreas

+0

好的,謝謝你的幫助。 –

回答

1

https://docs.oracle.com/javase/tutorial/uiswing/misc/desktop.html

「桌面API使用的主機操作系統的文件關聯以啓動與特定文件類型相關聯的應用。例如,如果OpenDocument文本文件(.odt)的文件擴展名與OpenOffice的Writer相關。應用程序中,Java應用程序可以啓動OpenOffice Writer來打開,編輯甚至打印具有該關聯的文件。根據主機系統的不同,不同的應用程序可能會與不同的操作相關聯,例如,如果某個文件無法打印,請先檢查無論其擴展是否在給定的操作系統上都有打印協會。「

我不認爲你可以改變這種關聯從Java,如果你能它可能會影響你的操作系統了。

TL; DR:如果您想使用默認的操作系統應用程序打開,請使用Desktop.open()。如果要使用自定義編輯器打開,請明確調用編輯器,例如使用Runtime.exec()

+0

多年前,Runtime.exec被ProcessBuilder所取代。 – VGR