在java代码中调用python脚本(runtime.exec)

时间:2011-09-16 19:21:46

标签: java python windows runtime.exec

我正在尝试在java中运行python脚本,但我遇到了一些麻烦。 我正在使用命令bellow来执行我的java项目中名为python的文件夹中的python脚本:

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 个答案:

答案 0 :(得分:7)

python可执行文件很可能不在为子进程提供的路径中。尝试更改命令行以包含python可执行文件的完整路径,如

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