Вызов скрипта Python в коде Java (runtime.exec) - PullRequest
3 голосов
/ 16 сентября 2011

Я пытаюсь запустить скрипт Python в Java, но у меня возникли некоторые проблемы. Я использую команду ниже, чтобы выполнить скрипт Python, который находится внутри папки с именем python в моем проекте Java:

Runtime r = Runtime.getRuntime();
Process p = r.exec("cmd /c python python\\test.py");

Скрипт должен что-то записать в текстовом файле и на экране, но после выполнения через r.exec это не работает (ничего не записывается и не записывается на экране, а p.waitFor () возвращает 1, что означает он не работал должным образом), он работает в терминале, хотя. Я попытался поместить скрипт python в корневую папку проекта, чтобы увидеть, не могла ли ошибка быть вызвана какой-то ошибкой пути, но у меня тоже не было успеха. Как я могу заставить это работать?

Мой SO - это Windows 7, и скрипт Python (test.py), который я пытаюсь запустить:

import sys
import os

def main():
    f = open('python/test.txt','w')
    f.write('It works!')
    f.flush()
    f.close()
    print('It works!')

if __name__ == '__main__':
    main()

1 Ответ

7 голосов
/ 16 сентября 2011

Скорее всего, исполняемый файл python находится не по пути, указанному для дочернего процесса.Попробуйте изменить в командной строке полный путь к исполняемому файлу Python, как в

Process p = r.exec("cmd /c c:\\path\\to\\python python\\test.py");
...