2009-10-06 72 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