1

我正在开发一个用 Java 编写的跨平台安装实用程序。我希望能够在 Linux 上执行 shell 命令,例如“apt-get ...”。为此,我正在使用 ProcessBuilder API。

不幸的是,有些命令需要 root 权限。我想以 root 身份执行以下 shell 命令:

bash -c apt-get install -y [某些包]

如果我尝试在“apt-get”之前添加“sudo”,则没有任何效果,因为没有终端“sudo”可以从中获取密码。

我应该怎么做才能让用户输入密码然后执行上面提到的shell命令?

一个简短的代码片段将不胜感激!提前致谢!最大限度

4

2 回答 2

3

您可以运行gksudo <your command>,但这会将您的应用程序绑定到某个 UI,例如 gnome、kde 等。

于 2013-08-02T15:34:51.127 回答
0

您可以将所有根任务写入脚本文件并要求用户以根权限执行它。我知道这听起来很笨拙,但是很多“企业级”软件供应商都是这样做的(例如,Oracle RDBMS 的(Java-)安装程序至少高达 11g)。

于 2013-08-02T17:40:28.703 回答