2016-02-05 2 views
1

Мой код:Почему моя readLine возвращает null?

String correr = "msg /SERVER:" + NomePC.replace(" ", "") + " * /TIME:300 \"" + Mensagem + "\""; 
    Process textoo = null; 
    try { 
     textoo = Runtime.getRuntime().exec(correr); 
    } catch (IOException e1) { 
     // TODO Auto-generated catch block 
     e1.printStackTrace(); 
    } 
    BufferedReader innTexto = new BufferedReader(new InputStreamReader(textoo.getInputStream())); 

    String lineTexto=null; 

    try { 
     lineTexto = innTexto.readLine(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

    if (lineTexto != null) { 
     System.out.println("Não passou"); 
    } 
    else if (lineTexto == null) { 
     System.out.println("A sua mensagem foi enviada com sucesso para " + NomePC + " ás: " + dataFormatada); 
    } 

Так что мой Readline всегда пустой, и я не знаю, почему. Я распечатал его, чтобы подтвердить. Когда я выполнял свою команду в cmd, у меня был ответ. Так почему же он не читает строки?

Im trying with an array of strings. Still not working

+0

Вы уверены, что команда не в настоящее время записи в поток ошибок? –

+0

Да, я. Я пробовал все, что мог. –

+0

Возможный дубликат [Невозможно получить getInputStream из Runtime.getRunTime.exec()] (http://stackoverflow.com/questions/17038324/cannot-get-the-getinputstream-from -runtime-getruntime-exec) –

ответ

0

Проблема заключается в том, что это не так, вы должны указать команду. Ваша команда состоит из аргументов команды, и вы должны отдельно каждый!

Итак, создайте массив из String, который содержит: msg, затем /SERVER:xxxx и т. Д. И передайте его exec.

---- EDIT

String []cmd = new String[THE_RIGHT_NUMBER_OF_ARGS_COMMAND_INCLUDED]; 
cmd[0] = "msg"; 
cmd[1] = "/SERVER:xxxx"; 
cmd[2] = "*"; 
cmd[3] = "/TIME:300"; 
... 
textoo = Runtime.getRuntime().exec(cmd) 
+0

Вы говорите об этом: String Mensagem = textAreaMsg.getText(); \t \t \t \t String NomePC = TxtNomePc.getText(); ?? Если вы этого не сделаете, я не понимаю вас. –

+0

Смотрите мой EDIT, вы должны ** выделить ** каждый аргумент командной строки в 'String' и построить массив этих строк. Если не вся строка считается командой, но нет команды, которая называется 'msg/SERVER: xxx ...', есть команда с именем 'msg', которая принимает аргументы. –

+0

Я пробовал это сейчас. Все еще не работает. Я собираюсь обновить изображение, проверьте его. –

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

  • Нет связанных вопросов^_^