This article ” How to call jar file using Python ” will brief you on two different ways in Python to call jar externally. Let’s understand them.
Calling a jar file using Python –
I found the subprocess as the best way to call any jar from python. Basically, If I say, It is one of the best ways to call any other cross-language package.
subprocess.call(['java', '-jar', 'jarname.jar', arg_variable1, arg_variableN])
As the syntax clarifies each value is provided in the arguments will be comma-separated. If it is a string like a hardcoded name like jar etc. It will be in quotes otherwise it will be like a simple variable.
Using the Os module is also another way of calling a jar file inside python code /script. Here is the basic syntax for this –
os.system( "java -jar jarname.jar " +arg_variable1 + " " +arg_variableN)
Unlike the subprocess module, os.system does not take arguments commas separated. Here we have to provide the space in order to differentiate between the arguments.
3. Which is better subprocess.call vs os.system –
As per the official documentation of Python 3 and my personal experience, I found subprocess is a better way to call jar file using Python. To proof this I am attaching the cropped image from the official documentation of python 3. Please check it out –
Basically, the reason is – easy to get fix exit code after jar execution and smooth exceptional handling in case of some failure and other utility like time out etc to make subprocess little useful that os. system.
Use Case for calling jar from python ( sample Scenario)-
As a developer, I have faced so many situations in my life where I have to call some java code from other programming languages. Especially when I started coding in python as a data scientist. I have to fetch the data from different sources in so many cases. To make this learning journey interactive from your side as well. I would like to share a very interesting story today which will inspire you definitely on this use-case. I was working for a client whose product was built on java technology and all database handling were on the java framework. One day they have a requirement for some predictive analytics which need some dynamic data from their system. There was no direct export for that data set in their existing system. I decided to use python and create a direct session to their DB.
The problem was on the license side of the library I am using for the client while execution. We can not call any external third party library which was not in the contract. Now we had only the option to call the existing jar to pull the data using python. Once we have that JSON ( exported data ), We transform that into the existing business case. Then we built that predictive model.
I hope you must like this article – ” How to call jar file using Python “. Please write back with your feedback.
Data Science Learner Team
Join our list
Subscribe to our mailing list and get interesting stuff and updates to your email inbox.