2
我有一个使用ProcessBuilder启动外部进程(Internet Explorer)的Java应用程序。奇怪的是,这个子进程在父Java线程调用Thread.sleep时冻结。它不会发生在所有进程中,例如Firefox,但是IE始终会发生。调用Thread.sleep()时,子进程停止(在Windows下的Java中)
任何想法?
P.S.我尝试了同样的效果Robot.delay()
我有一个使用ProcessBuilder启动外部进程(Internet Explorer)的Java应用程序。奇怪的是,这个子进程在父Java线程调用Thread.sleep时冻结。它不会发生在所有进程中,例如Firefox,但是IE始终会发生。调用Thread.sleep()时,子进程停止(在Windows下的Java中)
任何想法?
P.S.我尝试了同样的效果Robot.delay()
你是如何使用子进程stdout和stderr?这可能值得张贴您的代码。
你需要同时使用输出流,否则你的stdout或stderr缓冲区将被填满,你的子进程将被阻塞。有关更多详细信息,请参见here。
我不是。我不知道我必须如IE不使用标准输入/标准输出,但我会尝试你的建议。 – Demiurg 2009-09-24 19:54:09
绝对尝试一下。几年前,我被一个类似的东西碰到了,我也认为它没有用stdin/stdout做任何事情;你仍然必须使用StreamGobbler或类似的方式来使其工作。 – M1EK 2009-09-24 20:54:04