Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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)

like image 217
Sney Avatar asked Feb 27 '23 10:02

Sney


2 Answers

p1 = subprocess.Popen(["/usr/bin/java", "MyClass"], stdout=subprocess.PIPE)
print p1.stdout.read() 
like image 180
YOU Avatar answered Apr 20 '23 01:04

YOU


I just found the solution:

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

S.Mark's is fine too!

like image 28
Sney Avatar answered Apr 20 '23 01:04

Sney