代码之家  ›  专栏  ›  技术社区  ›  lock

如何从java运行python脚本?

  •  5
  • lock  · 技术社区  · 14 年前

    实际上,我所需要的只是获取stdf文件的FAR、MIR和MRR部分。sourceforge上有一个stdf4j,但是由于缺少文档,我不能使用它。

    所以现在我只需要详细地调用这个脚本,并用Java读取结果文件,然后继续使用现有的应用程序。

    问题在于使用:

    Process p = r.exec("cmd /c python parser.py sample_data.std.gz -v test.txt");
    

    3 回复  |  直到 14 年前
        1
  •  6
  •   Mike Clark    13 年前

    你也许应该打电话 p.waitFor();

    更新1:还要确保您正在读取 p.getErrorStream() p.getInputStream()

    更新2:您可能还想检查进程返回代码中是否有错误代码。过程返回码通过 waitFor() 的返回值。

        2
  •  2
  •   Serplat    14 年前

    除了确保你打电话 p.waitFor() ,您可能还必须读取流的内容。如果不读取流,进程将暂停。

    http://www.physionet.org/physiotools/puka/sourceCode/puka/StreamGobbler.java

    并称之为:

     new StreamGobbler(p.getErrorStream(), "Error");
     new StreamGobbler(p.getInputStream(), "Input");
    

    你也许可以自己设计出一个更有效的课程,但是这个课程至少应该给你一个基本的想法(注意,它不是我写的)。

        3
  •  0
  •   Joshua    14 年前