当前位置: 首页 > 知识库问答 >
问题:

Jython打印所有终端输出/分配输出为字符串

郭思聪
2023-03-14

我一直在研究将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());
      }
    }
This outputs 6
Object Pyoutput = pyEngine.eval("print('Hello World')");
System.out.println(Pyoutput.toString());

共有1个答案

尹弘壮
2023-03-14

您可以为要通过引擎使用的脚本设置编写器ScriptContext。例如:

ScriptEngine pyEngine = new ScriptEngineManager().getEngineByName("python");
StringWriter sw = new StringWriter();
pyEngine.getContext().setWriter(sw);
pyEngine.eval("print('Hello World')");
System.out.println(sw.toString());

印刷品

Hello World
 类似资料:
  • 我试图为java编程设置VS代码,我已经完成了。然而,有一件事特别困扰着我。例如,当我运行下面的代码时,我会在TERMINAL选项卡中得到输出,以及许多其他我不想看到的垃圾。我如何更改它,使唯一的输出是“测试...”在控制台? 我运行代码后的输出如下图所示。即使我单击其他选项卡,它们也是空的,即使我删除/隐藏终端选项卡,每次我重新运行代码时,它都会弹出。

  • 4.12. 打印输出 前面例子中涉及到的打印都比较简单。在这一节中,我们将要讨论Go语言格式化输出的功能。 我们已经用过"fmt"包中的"Printf"和"Fprintf"等输出函数。"fmt"包中的"Printf"函数的 完整说明如下: Printf(format string, v ...) (n int, errno os.Error) 其中"..."表示数目可变参数,

  • 问题内容: 我在终端上运行Python 给定一个字符串 我想它在某种程度上,这样的换行符的将是可见的,而不是去到下一行 我可以这样做而不必修改字符串并添加双斜杠() 问题答案: 采用

  • 我是第一次使用LLDB。我正在运行MacOSX小牛队。由于某种原因,我无法让LLDB打印任何一行源代码。相反,输出似乎是汇编指令集。我如何“修复”此问题,使其显示代码? [源代码] 当前可执行文件设置为“a . out”(x86 _ 64)。< br> (lldb)断点设置-n main 断点1: where = a.out main,address = 0x 00000000100000 d60

  • 标准输出 1.gossh远程执行命令返回格式. #批量模式首行首先打印所有的远程机器IP. [servers]=[192.168.56.2 192.168.56.2] #机器ip ip=xxx.xxx.56.2 #远程执行命令 command=uname #命令执行完后的退出值,就是$? return=0 #远程执行命令输出到标准输出和错误输出的结果 Linux ##换行和---分隔线 ---

  • 终端用户接口实用功能。 fabric.contrib.console.confirm(question, default=True) 询问用户 yes/no 的问题,并将用户输入转换为 True 或 False。 question 参数应当简单但合乎语法,比如“是否继续?”,问题的结尾应当接上类似“[Y/n]”这样的字符串,函数本身 并不 会帮你做这种事。 默认情况下,用户不输入任何值直接敲击回车