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