运行流程时,如何将其输出传输到System.out
并将其输入到System.in
:
Process p = Runtime.getRuntime().exec("cubc.exe");
// do something with p.getOutputStream())
编辑:我想我解释了这个错误;我不想输入程序,我希望用户输入程序,我不想读取输出,我希望用户读取输出。
答案 0 :(得分:10)
使用Apache IOUtils
中的Commons IO类:
Process p = Runtime.getRuntime().exec("cubc.exe");
IOUtils.copy(p.getInputStream(), System.out);
答案 1 :(得分:2)
您可以通过这种方式获得输入:
Scanner scan = new Scanner(p.getInputStream());
关于输出流,您可以以相同的方式获取它,并使用 System.out。* 方法打印它:
OutputStream os = p.getOutputStream();
答案 2 :(得分:-3)
本身你不能用Java真正做到这一点。您可以做的是创建您的进程并使用PipedOutputStream来捕获输出,然后将其写入System.out.println。除此之外,我认为没有其他办法。