【问题标题】:Call python script within java code (runtime.exec)在 java 代码中调用 python 脚本 (runtime.exec)
【发布时间】:2011-09-16 19:21:46
【问题描述】:

我正在尝试在 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 脚本放在项目的根文件夹中,以查看错误是否可能是由某些路径错误引起的,但我也没有成功。 我怎样才能让它工作?

我的 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()

【问题讨论】:

  • 当你System.out.println(System.getProperty("user.dir"));(打印java进程的工作目录)时,你得到python子目录所在的目录吗?

标签: java python windows runtime.exec


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-16
    • 1970-01-01
    • 2014-07-02
    • 2012-02-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多