Reputation: 110267
I have a python script that needs to execute a .jar
file that is located in another directory. What would be the best way to do this? So far I was thinking -
subprocess.call(["cd","/path/to/file"])
subprocess.call(["./file.jar"])
How should I do this?
Update:
Using both of the answers below, this is what I ended up doing:
subprocess.call(shlex.split("./file.jar -rest -of -command"), cwd=COMMAND_FOLDER)
Upvotes: 3
Views: 123
Reputation: 879869
To run a process in a different current working directory, use subprocess.Popen
's cwd
parameter:
import subprocess
proc = subprocess.Popen(['file.jar'], cwd = '/path/to/file')
Upvotes: 7
Reputation: 45672
howabout using:
import subprocess
import shlex
cmd = "the command to use to execute your binary"
args = shlex.split(cmd)
try:
p = subprocess.call(args)
except OSError, e:
print >>sys.stderr, "Execution failed:", e
Upvotes: 2