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
' <class 'bytes'>
decode: hello world
<class 'str'>
b'LOGAN' <class 'bytes'>
decode: LOGAN <class 'str'>
done
注意点:
1. java的 System.out.println自带换行
2. java返回的结果需要decode
参考资料: