我正在开发一个用Java编写的跨平台安装实用程序。我希望能够在Linux上执行shell命令,例如“apt-get ...”。我正在使用ProcessBuilder API来实现此目的。
不幸的是,某些命令需要root权限。我想以root身份执行以下shell命令:
bash -c apt-get install -y [some package]
如果我尝试在“apt-get”之前添加“sudo”没有任何效果,因为没有终端“sudo”可以从中获取密码。
如果要求用户输入密码然后执行上述shell命令,我该怎么做?
非常感谢短代码片段! 提前致谢! 最大
答案 0 :(得分:2)
您可以运行gksudo <your command>
,但这会将您的应用程序绑定到某个用户界面,例如gnome,kde等。
答案 1 :(得分:0)
您可以将所有root-tasks写入脚本文件,并要求用户使用root权限执行它。我知道这听起来很笨拙,但是很多“企业级”软件供应商(例如Oracle RDBMS的(Java-)安装程序至少高达11g)就这样做了。