如何显示已执行命令行程序的输出?

时间:2012-08-06 15:28:05

标签: java

我有一个命令行Java程序,我遗憾的是由于某些完整性原因无法修改,我为这个程序提供了一个GUI,除了我无法向用户提供有关完成进程的通知之外程序使用System.out.println()将数据打印到命令行,我使用net bean设计了UI并且它驻留在一个单独的文件中,所以我该怎么做..?

1 个答案:

答案 0 :(得分: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扫描输入并对其执行操作。