Как я могу заставить мой скрипт на python (версия 2.5) запускать файл jar внутри папки, а не из командной строки? - PullRequest
3 голосов
/ 18 ноября 2008

Я знаком с использованием os.system для запуска из командной строки. Тем не менее, я хотел бы иметь возможность запустить JAR-файл из определенной папки, например. моя папка 'test'. Это потому, что мой jar (находится в моей папке «test») требует файл внутри моей «test» папки. Итак, как мне написать в моем скрипте функцию, которая выполняет следующее: c:\test>java -jar run_this.jar required_parameter.ext? Я новичок в Python, поэтому детали очень ценятся. Заранее спасибо.

Ответы [ 2 ]

5 голосов
/ 18 ноября 2008

Вот небольшой скрипт, с которого можно начать. Существуют способы сделать это «лучше», но недостаточно знать, чего вы пытаетесь достичь, этого должно быть достаточно.

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
1 голос
/ 18 ноября 2008

В общем: используйте os.chdir, чтобы изменить каталог родительского процесса, затем os.system, чтобы запустить файл jar. Если вам нужно, чтобы рабочий каталог Python оставался стабильным, вам нужно вернуть chdir в исходный рабочий каталог - вам нужно записать это с помощью os.getcwd ().

В Unix: создайте дочерний процесс явно с помощью os.fork. У родителя дождитесь ребенка с os.waitpid. У ребенка используйте os.chdir, затем os.exec для запуска java.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...