从Python使用“子进程”调用Java应用并读取输出

4 投票
2 回答
7422 浏览
提问于 2025-04-15 20:03
subprocess.Popen("java MyClass", shell=True)

从Python调用一个Java应用程序时,如何优雅地读取Java程序的输出(也就是通过System.out.println打印的内容),而不需要写文件和读文件呢?(使用Jython等方法也不行)

2 个回答

3

我刚刚找到了答案:

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

S.Mark的也没问题!

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

当然可以!请把你想要翻译的内容发给我,我会帮你把它变得更简单易懂。

撰写回答