运行 python 使用流程构建器的代码 Java

Running a python code using process builder Java

我需要一些帮助。 我正在尝试从目录中 运行 一个名为 mantime.py 的 python 脚本。我尝试 google 它并找到了几种方法。然而,我仍然得到 2 作为退出值,我希望它是 0(正常终止)。这是我的代码:

public int performedManTime() throws IOException, InterruptedException{
ProcessBuilder pb = new ProcessBuilder("/usr/bin/python","/Users/ab/Downloads/ManTIME/mantime.py","-ppp","test",inputDir.getAbsolutePath(),"i2b2");
        Map<String,String>env = pb.environment();
        env.put("MANTIME_CRF_TRAIN", "/usr/local/Cellar/crf++/0.58/bin/crf_learn");
        env.put("MANTIME_CRF_TEST", "/usr/local/Cellar/crf++/0.58/bin/crf_test");
        env.put("MANTIME_CORENLP_FOLDER","/Users/ab/Downloads/ManTIME/externals/stanford-corenlp-full-2014-08-27");
        Process process = pb.start();
        process.waitFor();
        System.out.println("Exit Value: "+process.exitValue());
        return process.exitValue();
    }
-ppp, test, input.dir and i2b2 are the arguments for the mantime.py

我尝试设置环境,如上所示。有谁知道有什么问题?任何意见或建议将不胜感激。谢谢

编辑:我怀疑因为 python 与我的工具 (/usr/local/python) 位于不同的目录中。在我把代码放在下面之后,不知何故它起作用了。

ProcessBuilder("/usr/bin/python","/Users/ab/Downloads/ManTIME/mantime.py","-ppp","test",inputDir.getAbsolutePath(),"i2b2");
pb.directory(/myToolsDir)

我怀疑 python 与我的工具 (/usr/local/python) 位于不同的目录中。在我将代码放在下面之后,它以某种方式起作用。谢谢大家

ProcessBuilder("/usr/bin/python","/Users/ab/Downloads/ManTIME/mantime.py","-ppp","test",inputDir.getAbsolutePath(),"i2b2");
pb.directory(/myToolsDir)