早上好:
我正在尝试运行需要执行的外部应用程序 作为根。我必须在执行后读取退出的行 这个应用程序,但它说“许可被拒绝”,好像是 它没有正确完成。我一直在思考 而我无法前进。代码如下:
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();
有谁知道为什么不让我运行命令?
感谢。
答案 0 :(得分:0)
尝试运行su
时是否有任何错误? (我想你会这样,因为su
可能会直接打开终端以提示输入密码; su
不会只读取密码的标准输入。)
尝试运行简单程序时是否有任何错误或成功,例如/usr/bin/cat /etc/passwd
?不妨开始简单,看看你是否可以在尝试更复杂的程序之前让它工作。
答案 1 :(得分:0)
尝试
怎么样?sudo -iu root
而不是su