在Java代码中调用Python脚本 (runtime.exec)
我正在尝试在Java中运行一个Python脚本,但遇到了一些问题。
我使用下面的命令来执行位于我的Java项目中的一个名为“python”的文件夹里的Python脚本:
Runtime r = Runtime.getRuntime();
Process p = r.exec("cmd /c python python\\test.py");
这个脚本应该在一个文本文件中写入一些内容,并在屏幕上显示出来。但是通过r.exec执行后,这个脚本没有正常工作(既没有记录任何内容,也没有在屏幕上显示,p.waitFor()返回1,表示执行不成功),但在终端中运行是可以的。我还尝试把Python脚本放在项目的根文件夹中,看看是不是路径错误导致的问题,但也没有成功。
我该怎么才能让它正常工作呢?
我的操作系统是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 个回答
8
很可能是 Python 的可执行文件没有在子进程所给的路径中。你可以尝试修改命令行,加入 Python 可执行文件的完整路径,比如这样:
Process p = r.exec("cmd /c c:\\path\\to\\python python\\test.py");