commande控制台表单java

时间:2014-03-25 16:54:20

标签: java

我尝试通过带有进程的java程序执行2个命令

Process p  = Runtime.getRuntime().exec(command1);
Process p2 = Runtime.getRuntime().exec(command2);
问题是,第一个问题是肯定的,但是不能建立第二个问题 它总是在waitfor()

中被填充

2 个答案:

答案 0 :(得分:1)

你可能遇到了可怕的“需要清空流”的问题。有关详细信息,请参阅When Runtime.exec() won't

同样在同一篇文章中,如果你像命令行一样处理getRuntime()。exec(),你可以遇到其他陷阱的一些信息。

答案 1 :(得分:1)

当运行一个向stdout / stderr打印任何内容的外部procss时,你应该读取它写的内容 - 否则它会在它的缓冲区填满后阻塞。 你基本上需要一个线程来读取stdout和一个线程来读取每个进程的stderr。