gpt4 book ai didi

java - Jython 无法获取字符串形式的 eval 输出

转载 作者:行者123 更新时间:2023-11-30 02:40:53 25 4
gpt4 key购买 nike

我在使用 Jython 时遇到问题,我希望捕获 eval 函数的输出:

Object Pyoutput = pyEngine.eval("print('Hello World')");
System.out.println(Pyoutput.toString());

这就是我认为可以完成的方式,但变成了对对象的引用。经过一番谷歌搜索后,我找到了仅访问先前评估过的特定变量等的方法。

我也尝试过执行:

interp.exec("print("hello world")");

但是不能将其分配给变量,因为其类型为 void。所以我的问题是,是否可以将 eval 或 exec 的整个输出恢复为 Java 字符串,以便可以在另一个文本字段中显示?

最佳答案

问题中的

Pyoutputnull (print 不返回任何内容),因此 Pyoutput.toString() > 导致 NullPointerException

它与产生值的表达式一起使用。以下程序打印 6

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());
}
}

关于java - Jython 无法获取字符串形式的 eval 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41749230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com