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

问题描述:

我想在java中运行python脚本,但我遇到了一些麻烦。 我使用命令波纹管执行python脚本这是一个文件夹,名为蟒蛇在里面我的Java项目:在java代码中调用python脚本(runtime.exec)

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() 
+3

当你'的System.out.println(System.getProperty(“user.dir来”));'(打印的java程序'工作目录),你会得到'python'子目录的目录吗? –

最有可能的蟒蛇可执行文件是不是在给了子进程的路径。尝试改变命令行,以包括完整路径蟒蛇可执行文件,如

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