使用Python中的“subprocess”调用Java应用程序并阅读Java app输出

读取从Python调用的Java应用程序的输出(即通过System.out.println)最好的方法是什么?

subprocess.Popen("java MyClass", shell=True) 

没有写和读文件? (使用Jython等不是一种可能的解决方案)

 p1 = subprocess.Popen(["/usr/bin/java", "MyClass"], stdout=subprocess.PIPE) print p1.stdout.read() 

我刚刚找到了解决方案:

 p = subprocess.Popen("java MyClass", shell=True, stdout=subprocess.PIPE) output, errors = p.communicate() 

S.Mark也很好!