0

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

4

1 回答 1

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扫描输入并对其进行处理。

于 2012-08-06T15:31:29.430 回答