0

我正在使用 Java 在 Mac OS X 中自动安装 .pkg 文件,为此我有 bash 控制台的以下命令:

echo 'Control123' | sudo -S installer -pkg /Users/george/Downloads/MyPackage.pkg -target /

我正在从 Java 运行时执行此命令:

Runtime.getRuntime().exec("echo 'Control123' | sudo -S installer -pkg /Users/george/Downloads/MyPackage.pkg -target /");

但如果在 Bash 控制台中执行命令,则未安装该软件包。它工作正常。

4

1 回答 1

1

您不应该假设用户具有 root 权限,并且启动安装程序可能是一个更好的主意,以便用户可以从那里授权和更新应用程序。如果这是有道理的,那么可以通过.pkg这种方式启动,不需要 sudo:

String userHome = System.getProperty( "user.home" );
String cmdString = ("open " + userHome + "/Downloads/MyPackage.pkg");

我不确定您为什么需要 echo 'Control123',但您可能需要单独回显。

于 2016-04-20T02:26:45.483 回答