2013-02-25 4 views
1

Я возился с Runtime.getRuntime(), но я не думаю, что это действительно то, что я хочу.Как запустить консольное приложение с консоли java?

Я хочу что-то, что имеет как пользовательский ввод, так и вывод, который выходит на стандартный вывод. Я бы хотел, чтобы в целом была запущена целая отдельная программа.

Grae

+0

почему бы не использовать Exec? – PbxMan

+0

http://www.javaworld.com/jw-12-2000/jw-1229-traps.html –

ответ

0

Делать это:

Process process = Runtime.exec("somecommand.exeorwhatever"); 

будет работать совершенно отдельный процесс. Затем вы можете использовать:

InputStream in = process.getInputStream(); 
InputStream err = process.getErrorStream(); 
OutputStream out= process.getOutputStream(); 
0

Вы можете использовать Process созданный с ProcessBuilder.start() методом и использовать его входные и выходные потоки.

Вот простой пример:

public static void main(String[] args) throws Exception { 
    String[] processArgs = new String[]{"ping","google.com"}; 
    Process process = new ProcessBuilder(processArgs).start(); 

    BufferedReader in = new BufferedReader(new InputStreamReader(
      //I'am using Win7 with PL encoding in console -> "CP852" 
      process.getInputStream(), "CP852")); 

    String line; 
    while ((line = in.readLine()) != null) 
     System.out.println(line); 

    in.close(); 
    System.out.println("process ended"); 
} 
Смежные вопросы