2016-07-01 3 views
0

В документации ProcessBuilder предусмотрено три метода для перенаправления вывода процесса.Как перенаправить вывод в поток java с помощью java.lang.ProcessBuilder

  • ProcessBuilder.Redirect redirectOutput()
  • ProcessBuilder redirectOutput(File file)
  • ProcessBuilder redirectOutput(ProcessBuilder.Redirect destination)

Вопрос: Я хочу, чтобы перенаправить вывод процесса в поток вместо File, как это может быть достигнуто.?

Вот документация: https://docs.oracle.com/javase/7/docs/api/java/lang/ProcessBuilder.html

ответ

-1

Как сделать:

Когда вы начнете вы обрабатываете вы будете иметь возможность получить OutputStream через Process объекта.

В документации ProcessBuilder вы можете найти способ Process start().

С объектом Process вы можете получить OutputStream по методу abstract OutputStream getOutputStream().

Документация:

Exemple:

ProcessBuilder processBuilder = ProcessBuilder("/here/your/command1", "/here/your/command2"); 
Process process = processBuilder.start(); 
OutputStream outputSteeam = process.getOutputStream(); 
+0

Благодаря он работал. – Abhishek

-2

Применение Процесс в вместо ProcessBuilder

Вот пример с Java API Runtime: http://docs.oracle.com/javase/7/docs/api/java/lang/Runtime.html

// Java runtime 
Runtime runtime = Runtime.getRuntime(); 
// Command 
String[] command = {"/bin/bash", "/my/file.sh"}; 
// Process 
Process process = runtime.exec(command); 

OutputStream out = process.getOutputStream(); 
+0

Я не согласен. ProcessBuilder - это более высокоуровневая альтернатива и гораздо менее подверженная ошибкам. –

+0

У вас есть пример? –

+1

Это объясняет это достаточно хорошо, я думаю: http://stackoverflow.com/a/10723391/342852 –

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