Как я могу заставить мой скрипт python (версия 2.5) запускать файл jar внутри папки, а не из командной строки?
Я знаком с использованием os.system для запуска из командной строки. Тем не менее, я хотел бы иметь возможность запустить JAR-файл из определенной папки, например. моя папка 'test'. Это потому, что мой jar (находится в моей папке "test") требует файл внутри моей "test" папки. Итак, как бы я написать функцию в моем сценарии, которая делает следующее: c:\test>java -jar run_this.jar required_parameter.ext
? Я новичок в Python, поэтому детали очень ценятся. Заранее спасибо.
2 ответа
Вот небольшой скрипт, чтобы вы начали. Существуют способы сделать его "лучше", но недостаточно знать, чего вы пытаетесь достичь, этого должно быть достаточно.
import os
if __name__ == "__main__":
startingDir = os.getcwd() # save our current directory
testDir = "\\test" # note that \ is windows specific, and we have to escape it
os.chdir(testDir) # change to our test directory
os.system("java -jar run_this.jar required_paramter.ext")
os.chdir(startingDir) # change back to where we started
В общем: используйте os.chdir, чтобы изменить каталог родительского процесса, затем os.system, чтобы запустить файл jar. Если вам нужно, чтобы рабочий каталог Python оставался стабильным, вам нужно вернуть chdir в исходный рабочий каталог - вам нужно записать это с помощью os.getcwd().
В Unix: создайте дочерний процесс явно с помощью os.fork. У родителя дождитесь ребенка с os.waitpid. У ребенка используйте os.chdir, затем os.exec для запуска java.