2016-09-19 6 views
-3

Я пытаюсь сделать так, чтобы, когда пользователь нажимает кнопку, появляется новый экран и автоматически запускает процесс командной строки, и они могут видеть результаты этого процесса.Чтение файлов в командной строке в java

Я думал, что смогу использовать JTextArea для установки текста.

Вот что у меня есть на данный момент:

runButton.addActionListener(new ActionListener() 
     { 
      public void actionPerformed(ActionEvent r) 
      { 
       JFrame runFrame = new JFrame("Running process..."); 
       runFrame.setVisible(true); 
       runFrame.setSize(500, 400); 
       runFrame.setDefaultCloseOperation(DISPOSE_ON_CLOSE); 
       runFrame.setLayout(null); 
       JTextArea run = new JTextArea(); 
       run.setBounds(100,50,300,200); 
       runFrame.add(run); 
       Runtime runtime = Runtime.getRuntime(); 
       Process process = null; 
       try 
       { 
        process = runtime.exec("cat /cmd/h:/testfile"); 
       } 
       catch (IOException e) 
       { 
        e.printStackTrace(); 
       } 
       InputStream runStream = process.getInputStream(); 
       InputStreamReader runStreamReader = new InputStreamReader(runStream); 
       BufferedReader br = new BufferedReader(runStreamReader); 
       String line; 
       StringBuilder sb = new StringBuilder(); 
       try 
       { 
        while ((line = br.readLine()) != null) 
        { 
         sb.append(line); 
        } 
       } 
       catch (IOException e) 
       { 
        e.printStackTrace(); 
       } 
       run.setText(sb.toString()); 
      } 
     }); 

Ошибка я получаю с этим:

Не удается запустить программу «кошки»: CreateProcess ошибка = 2, система не может найти указанный файл

Я пытался проверить открытие файла, чтобы проверить это, что просто содержит строки случайных букв.

EDIT:

Я не уверен, что я ясно объяснил, что мне нужно это делать. Я хочу, чтобы команда запускалась в командной строке, которая открывает файл. Затем я хочу, чтобы результат командной строки выводился в JTextArea.

EDIT 2:

Я попытался изменить свою команду "пинг riot.de -t". Это будет пинговать беспорядки сервера так часто, и он возвращает ответ с временем отклика.

При запуске это новый кадр просто черный, а java замерзает.

+1

Вы используете это в Windows? В Windows нет команды 'cat'. – Jesper

+0

похоже на '/ cmd/h:/testfile' не существует. вы запускаете cygwin на окнах? –

+0

Проверьте правильность пути. – Blobonat

ответ

0

Возможно, у вашего приложения java-приложения нет правильного пути cat cmd? вы пытаетесь указать абсолютный путь для команды cat?

+0

Как я могу указать абсолютный путь? – Plumel

+0

Открыть терминал и с командой: , котора получить абсолютный путь команды cat. Попробуйте использовать его. Надеюсь, мне было полезно – aurox

+0

Спасибо, я попробую это. – Plumel

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

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