以root身份执行外部应用程序 - 问题

时间:2011-02-01 07:13:52

标签: external root execute

早上好:

我正在尝试运行需要执行的外部应用程序 作为根。我必须在执行后读取退出的行 这个应用程序,但它说“许可被拒绝”,好像是 它没有正确完成。我一直在思考 而我无法前进。代码如下:

process = Runtime.getRuntime().exec("su");
String[] command = {external application command};
process = Runtime.getRuntime().exec(comando);
InputStream inputStream = process.getInputStream();
BufferedReader bufferedReader = null;
try
{
   bufferedReader = new BufferedReader(new
       InputStreamReader(inputStream),8192);
   String line = null;
   while ((line = bufferedReader.readLine()) != null)
   {
      System.out.println("read line:"+line );
   }
}
catch (IOException ioe)
{
  ioe.printStackTrace();
}
process.waitFor();

有谁知道为什么不让我运行命令?

感谢。

2 个答案:

答案 0 :(得分:0)

尝试运行su时是否有任何错误? (我想你会这样,因为su可能会直接打开终端以提示输入密码; su不会只读取密码的标准输入。)

尝试运行简单程序时是否有任何错误或成功,例如/usr/bin/cat /etc/passwd?不妨开始简单,看看你是否可以在尝试更复杂的程序之前让它工作。

答案 1 :(得分:0)

尝试

怎么样?
sudo -iu root

而不是su