0

我用 Java 为 Mac OS X 编写了一个应用程序。我想使用 Jar Bundler 将其转换为 .app。我需要这个应用程序以 root 身份运行。有没有办法让应用程序调用这样的密码提示对话框?

4

1 回答 1

0

是的,你可以使用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 脚本或其他东西替换它。聪明一点,我相信你可以找到一种方法让你的程序在给定的情况下工作。

现在,我不能用勺子喂你答案,请记住,根据我的经验,如果你使用这种方法,任何错误都将是由于没有反斜杠引号之类的。

于 2013-10-05T16:57:49.800 回答