If you want to run a jar from python or really any process. You do so by leveraging subprocess package.
- from subprocess import Popen, PIPE
Then you need to call Popen. If you want to set java memory you can do so using -Xms and -Xmx in between java and -jar.
- #bufsize of 1 is line buffered
- #stdout and stderr to PIPE is to pipe the output of std out and std error to the PIPE so you can get the output
- result = Popen(['java -jar myapp.jar'], stdout=PIPE, stderr=PIPE, shell=False, bufsize=1)
If you want your process to wait until finished you will need to call wait.
- result.wait()
If you pushed the stderr and stdout then you can check the output.
- if result.stdout is not None:
- for line in result.stdout:
- print(line)
- if result.stderr is not None:
- for line in result.stderr:
- print(line)