【发布时间】:2013-08-27 23:53:16
【问题描述】:
我用 Java 为 Mac OS X 编写了一个应用程序。我想使用 Jar Bundler 将其转换为 .app。我需要这个应用程序以 root 身份运行。有没有办法让应用程序调用这样的密码提示对话框?
【问题讨论】:
我用 Java 为 Mac OS X 编写了一个应用程序。我想使用 Jar Bundler 将其转换为 .app。我需要这个应用程序以 root 身份运行。有没有办法让应用程序调用这样的密码提示对话框?
【问题讨论】:
是的,您可以使用 applescript。 原谅我,可能有更好的方法来做到这一点,但我就是这样做的(这样也更有趣)。
这会运行一个 shell 脚本
Process proc=Runtime.getRuntime().exec("shell-script-here");
然后你进行下一步,像这样通过shell脚本运行一个applescript...
Process proc=Runtime.getRuntime().exec("osascript -e 'applescript-here'");
你必须非常小心反斜杠引号之类的......但是这一行应该提示密码对话框
Process proc=Runtime.getRuntime().exec("osascript -e 'do shell script \"\" with administrator privileges');
虽然这看起来令人困惑,但当我说 'do shell script \"\"' 的意思是什么都不做时,它仍然会提示输入密码。鉴于我不知道你的程序做了什么,你可以用任何 shell 脚本或其他东西替换它。聪明一点,我相信你可以找到一种方法来让你的程序工作。
现在,我不能用勺子喂你答案,请记住,根据我的经验,如果你使用这种方法,任何错误都将是由于没有反斜杠引号之类的。
【讨论】: