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

标签 java python windows runtime.exec

我正在尝试在 java 中运行 python 脚本,但我遇到了一些麻烦。 我正在使用下面的命令执行 python 脚本,该脚本位于我的 java 项目中名为 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()

最佳答案

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

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

关于java - 在 java 代码 (runtime.exec) 中调用 python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7449395/

相关文章:

用于 clojure 开发的 Linux 与 Windows

java - java中emptyIterator的使用

python - 从 Pandas 数据框文本列获取数组的有效方法

python - pycharm中找不到Pytorch,无法安装

python - ImportError:无法导入名称命名元组

c++ - 如何在 C++ 中以编程方式解析 %UserProfile% 的位置?

java - 如何在 Manjaro 中通过命令行更改 java 的默认版本?

java - 安卓服务器: why it times out incoming connections randomly?

java - 创建 kik 聊天机器人

windows - 以任何首选语言关闭连接在 LAN 中的远程计算机