请告诉我如何在Java中运行/调用.dmg应用程序。
我用下面的语法
Runtime.getruntime.exec("sample.dmg")
但它会因错误代码为13的“权限被拒绝”而引发错误。请告诉我如何调用dmg。
答案 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
作为最后的手段。