PythonInterpreter exec函数返回空输出流

时间:2017-09-19 12:14:08

标签: java jython pythoninterpreter

我正在使用org.python.util.PythonInterpreter类在java中执行python代码。请在下面找到我的代码片段。

echo $var | sed 's/today[^)]*)//'

上述代码的问题是针对相同的脚本,有时候我的'consoleOutput'为空。我无法弄清楚问题所在。为了运行上面的代码1000次,我得到空输出至少4次。

另一方面,如果我使用默认构造函数,如下所示,它可以正常工作

PythonInterpreter pythonInterpreter = new PythonInterpreter(null, new PySystemState());

ByteArrayOutputStream outStream = new ByteArrayOutputStream(16384);

pythonInterpreter.setOut(outStream);
pythonInterpreter.setErr(outStream);

// execute the code
pythonInterpreter.exec(script);

String consoleOutput = outStream.toString();
outStream.flush();

System.out.println("Console output :- "+consoleOutput);

1 个答案:

答案 0 :(得分:0)

进一步深入研究我发现的问题,将属性python.site.import设置为false会触发此问题。在Jython独立版本2.7.0中会出现此问题。更新到2017年6月发布的独立jar(2.7.1)修复了此问题。