This article ” How to call jar file using Python ” will brief you on two different ways in Python to call jar externally . Lets 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 way to call any other cross language package .
subprocess.call(['java', '-jar', 'jarname.jar', arg_variable1, arg_variableN])
As the syntax clarifies the each value in provided in the arguments will be comma separated . If it is a string like hard coded name like jar etc . It will be in quotes otherwise it will be like a simple variable .
Using 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 make subprocess little useful that os.system .
Use Case for calling jar from python ( sample Scenario)-
As a developer , I have face so many situation in my life where I have to call some java code from other Programming languages . Specially 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 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 data base handling were on java framework . One day they have a requirement for some predictive analytics which need some dynamic data from their system .There were no direct export for that data set in their existing system . I decided to use python and create the direct session to their DB .
Problem was on the license side of the library I am using for client while execution .We can not call any external third party library which were not in the contract. Now we had only option to call the existing jar to pull the data using the 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 your feed back .
Data Science Learner Team
Join our list
Subscribe to our mailing list and get interesting stuff and updates to your email inbox.