【发布时间】:2017-01-22 07:31:50
【问题描述】:
我一直在研究将 jython 嵌入到我的 java 程序中,以允许用户在 python 中编写脚本。但是我想将他们的 python 脚本的输出打印到我程序中的 java 文本框中。但我找不到嵌入 jython 引擎输出的方法:
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
public class Main {
public static void main(String[] args) throws ScriptException {
ScriptEngine pyEngine = new ScriptEngineManager().getEngineByName("python");
Object Pyoutput = pyEngine.eval("2*3");
System.out.println(Pyoutput.toString());
}
}
我试过这个来获得 eval 的输出。
This outputs 6
但是当我从打印语句中尝试相同时,这是正确的:
Object Pyoutput = pyEngine.eval("print('Hello World')");
System.out.println(Pyoutput.toString());
当它应该是 Hello World 时,输出为空。有没有办法打印已被 jython eval/exec 的脚本的整个输出/终端内容?
【问题讨论】: