import os
import subprocess
import sys
EXIT_SUCCESS = 0
EXIT_FAILURE = 1
def IsExecutable(path):
return os.path.isfile(path) and os.access(path, os.X_OK)
def FindCommand(command):
fpath, _ = os.path.split(command)
if fpath:
if IsExecutable(command):
return command
if sys.platform == 'win32':
command, ext = os.path.splitext(command)
if not ext:
exts = os.environ['PATHEXT'].split(os.path.pathsep)
else:
exts = [ext]
else:
exts = ['']
for path in os.environ['PATH'].split(os.path.pathsep):
for ext in exts:
path = os.path.join(path, command) + ext
if IsExecutable(path):
return path
return None
def main():
java_path = FindCommand('java')
if not java_path:
sys.stderr.write('java: command not found\n')
sys.exit(EXIT_FAILURE)
args = sys.argv[1:]
if len(args) < 2 or args[0] != '-jar':
sys.stderr.write('usage: %s -jar JARPATH [java_args]...\n' % sys.argv[0])
sys.exit(EXIT_FAILURE)
return subprocess.check_call([java_path] + args)
if __name__ == '__main__':
sys.exit(main())