python call java jar
阿新 • • 發佈:2017-08-15
upper code pip -h 自帶 sin class -s 輸出
python腳本如何調用Java的jar文件呢?
HelloWorld.java
public class HelloWorld { public static void main(String[] args) { System.out.println("hello world"); String input = args[0]; String output = input.toUpperCase(); System.out.print(output); } }
javacaller.py
# python3# coding = utf-8 from subprocess import Popen, PIPE, STDOUT mycmd = [‘java‘, ‘-jar‘, ‘HelloWorld.jar‘, ‘logan‘] pipe = Popen(mycmd, stdout=PIPE, stderr=STDOUT) for line in pipe.stdout: print(line, type(line)) if isinstance(line, bytes): line_decode = line.decode(‘utf-8‘)print(‘decode:‘, line_decode, type(line_decode)) print(‘done‘)
輸出:
b‘hello world\n‘ <class ‘bytes‘>
decode: hello world
<class ‘str‘>
b‘LOGAN‘ <class ‘bytes‘>
decode: LOGAN <class ‘str‘>
done
註意點:
1. java的 System.out.println自帶換行
2. java返回的結果需要decode
參考資料:
How to get the output from .jar execution in python codes?
python call java jar