2009-10-06 30 views
2

有沒有一種合理的方式直接從Java執行.app目錄,而不是深入查找二進制文件?我有一個應用程序,其中包含一些用於打開各種事物的外部程序的首選項,如果在OSX上,用戶可以選擇.app文件夾,那很好。我可以查找.app擴展名,並根據需要以不同的方式處理它。從Java執行.app文件夾?

回答

3

您可以簡單地在終端中調用「打開appname.app」。 因此... Runtime.getRuntime()。exec(「open path.app」)應該可以正常工作。

+0

果然,沒有意識到exec通過終端傳遞了命令。認爲它直接加載了二進制文件。 – 2009-10-06 16:06:41

+0

好的答案,我建議您始終使用以String []作爲參數的exec方法,這樣可以避免應用程序在名稱中包含特殊字符時的一些奇怪行爲。 另外,如果你想打開一個給定的OS X應用程序的特定文件,使用-a參數。例如 Runtime.getRuntime().exec(new String [] { 「open」,「path/to/file」,「-a」,「BBEdit」 }); – 2009-10-06 16:44:32

+0

@ gct嚴格來說,它是通過* shell *而不是終端。 – finnw 2009-10-06 18:10:06