Calling Java app with "subprocess" from Python and reading the Java app output

communication, java, python

Solution

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

Problem

What is the nicest way to read the output (i.e. via System.out.println) of a Java app which is called from Python with ``` subprocess.Popen("java MyClass", shell=True) ``` without writing and reading a file? (Using Jython etc is not a possible solution)

Original source