【问题标题】:Running a python code using process builder Java使用流程构建器 Java 运行 python 代码
【发布时间】:2015-07-04 22:48:13
【问题描述】:

我需要一些帮助。 我正在尝试从一个目录运行一个名为 mantime.py 的 python 脚本。我试图用谷歌搜索它并找到了几种方法。然而,我仍然得到 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)

【问题讨论】:

  • 检查ErrorStream中显示的内容

标签: java python bash processbuilder


【解决方案1】:

我怀疑是因为 python 与我的工具 (/usr/local/python) 位于不同的目录中。在我把代码放在下面之后,它以某种方式工作。谢谢各位

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-15
    • 2020-06-21
    • 1970-01-01
    • 2013-06-01
    相关资源
    最近更新 更多