командная строка из программы - не все команды исполняются

1

Я написал код, который запускает командную строку android и собирает результат.

он выполняет "ls" правильно, но когда я помещаю команду "top -n 1", она ничего не показывает.

это явная проблема? телефон не внедрен, и при использовании "эмулятора терминала" я вижу "верхний" вывод.

вот код:

// ** execute command line and gather the output **//
    final StringBuilder log = new StringBuilder();
    try{
        ArrayList<String> commandLine = new ArrayList<String>();
        commandLine.add("top");
        commandLine.add("-n1");

        Process process = Runtime.getRuntime().exec(commandLine.toArray(new String[0]));

        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));

        String line;
        while ((line = bufferedReader.readLine()) != null){ 
            log.append(line);
            log.append(", \n"); 
        }
        log.append(", \n");
    } 
    catch (IOException e){

    } 

Спасибо.

  • 0
    Любой код или журнал, чтобы сбросить?
  • 1
    Я не думаю, что выполнение приложений командной строки официально поддерживается, что означает, что он не определен, работает ли он или нет, особенно на разных устройствах.
Показать ещё 1 комментарий
Теги:
command-line

1 ответ

0

Возможно, вам захочется показать некоторые из вашего кода. Как правило, команды, запускаемые с использованием Runtime, не выполняются в оболочке, поэтому вы можете попробовать что-то вроде "sh -c top -n 1" в качестве параметра prog.

  • 0
    "sh -c top -n1" застрял в моем приложении ....
  • 0
    Ну, вы можете использовать отладчик, чтобы проверить, где он «застрял».

Ещё вопросы

Сообщество Overcoder
Наверх
Меню