2012-03-06 64 views
2

我想从python脚本产生一个Java进程。然后从调用的python脚本中读取java进程的stderr流。这可以使用管道完成吗?Python与Java进程之间的IPC

我尝试使用python的win32 api从python脚本产生java进程。 我通过使用win32process.CreateProcess()方法产生具有管的写入结束的java程序。

然后我等待的java程序使用win32event.WaitForSingleObject()信号(即完成)。然后,我尝试使用win32file.ReadFile()方法尝试通过管道的读取端从python脚本中读取。

但我不知道如何让java程序与python脚本进行通信。 我是否需要在java代码中使用信号处理程序?请举一个例子......

谢谢 Parag

回答

3

你应该使用subprocess.Popen对于这一点,然后调用.communicate()送输入,等待完成,然后得到标准错误回来。

win32 API对于你想要做的事情来说都是过度杀伤和不必要的复杂性。

+0

嗨琥珀,但是不会我需要特别注意这个IPC的Java方面......?我的意思是不会我需要使用信号处理程序在那里...? – 2012-03-06 22:50:05

+0

+1,尽管我认为Win32 API基本上不需要任何复杂的工作,但与其他方法相比,基本上可以做任何事情;) – Voo 2012-03-06 22:50:50

+0

@ParagSaoji您不需要,不需要... – Amber 2012-03-06 22:51:33