2012-08-06 57 views
0

我有一个命令行Java程序,我不能修改某些完整性的原因,我为这个程序提供了一个图形用户界面,我得到它所有覆盖,除了我无法提供有关完成进程的通知作为程序使用System.out.println()将数据打印到命令行,我使用net beans设计了UI,它位于一个单独的文件中,所以我该如何做这个..?如何显示执行的命令行程序的输出?

回答

3

您是否在使用Runtime.exec执行程序?然后你就可以得到输出流,以及这样的:

Runtime rt = Runtime.getRuntime(); 
Process proc = rt.exec("java yourOtherProgram.jar"); 
InputStream stdin = proc.getInputStream(); 

如果你直接调用一些方法,你可以重定向的System.out这样的:

PrintStream out = ...; 
PrintStream err = ...; 

System.setOut(out); 
System.setErr(err); 

ThatOtherProgram foo = new ThatOtherProgram(); 
foo.main(new String[0]); 

编辑

然后,您可以使用Scanner扫描输入并对其进行处理。

+0

感谢您的帮助..我重新实施了使用runtime.exec的程序,但我仍在努力如何动态地提供基于流的通知..感谢您的努力.. – Riddler 2012-08-06 16:00:30

+0

您可以使用Scanner类来去做。 – 2012-08-06 19:06:26

相关问题