如何在Java中以root身份执行shell命令

时间:2013-08-02 15:19:26

标签: java bash processbuilder

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

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

bash -c apt-get install -y [some package]

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

如果要求用户输入密码然后执行上述shell命令,我该怎么做?

非常感谢短代码片段! 提前致谢! 最大

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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