2011-02-01 4 views
0

Доброго утра:Выполнить внешнюю программу как корень - проблема

Я пытаюсь запустить внешнее приложение, которое должно быть выполнено как корень. Я должен прочитать строки из выхода после выполнения этого приложения, но он говорит «разрешение отклонено», как если бы не был выполнен правильно. Я думал о времени , и я не могу двигаться вперед. Код выглядит следующим образом:

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

У вас есть ошибки при попытке запустить su? (Я думаю, вы бы, так как su, вероятно, открыть терминал непосредственно запрашивает пароль, su не просто читает стандартный ввод пароля.)

Есть ли у вас какие-либо ошибки или успех при попытке запустить простая программа, как /usr/bin/cat /etc/passwd? Могло бы также начать прост и посмотреть, сможете ли вы заставить его работать, прежде чем пытаться использовать более сложные программы.

+0

Мой код работает отлично, если я помещал команду выполняется «LS-л», например. Тем не менее, я пытаюсь запустить приложение , которое обращается к корневому доступу к устройству/dev/xxxx butneed . Я подключил свой мобильный телефон, и он работает, если я запускаю команду с консоли/терминала без проблем, но поскольку исходный код говорит мне «Permission denied». Спасибо. – user598011

0

, что о попытке

sudo -iu root 

вместо су

+0

Мой код отлично работает, если я положил команду, например, «ls-l». Тем не менее, я пытаюсь запустить приложение , которое обращается к устройству/dev/xxxx, которое вам нужно root. У меня есть встроенный мобильный телефон, и он работает, если я запускаю команду с терминала без проблем, но поскольку исходный код говорит мне «Permission denied.» Спасибо. – user598011

Смежные вопросы