如何通过java在mac上运行dmg

时间:2011-10-28 17:29:50

标签: java macos

请告诉我如何在Java中运行/调用.dmg应用程序。 我用下面的语法 Runtime.getruntime.exec("sample.dmg") 但它会因错误代码为13的“权限被拒绝”而引发错误。请告诉我如何调用dmg。

2 个答案:

答案 0 :(得分:8)

DMG文件无法直接执行。您需要使用Mac OSX打开命令:

Runtime.getRuntime().exec(new String[] { "/usr/bin/open", "sample.dmg" });

您可能需要拥有dmg文件的完整路径,否则它似乎对我来说很好。打开也让你指定应用程序进行打开,这样你就可以做很酷的事情,比如在Mail应用程序中将此文档作为附件发送:

Runtime.getRuntime().exec(
    new String[] { "/usr/bin/open", "-a", "Mail", "letter.pdf" });

我一直使用Mac命令打开这个。

答案 1 :(得分:2)

您应该使用Desktop.open(File file),它将为操作系统使用适当的开启工具。在Mac的情况下,它将使用open。这比Runtime.exec更好,因为您没有依赖open命令的确切位置。此外,如果它有一个DMG安装应用程序,例如Mediafour的MacDrive,它甚至可以在Windows上运行。

底线是使用Desktop.open(File file)打开一个带有操作系统默认开启工具的文件,这就是它的用途。大多数人只使用Runtime.exec作为最后的手段。