gpt4 book ai didi

java - 从 Jython 控制标准输出/标准错误

转载 作者:太空狗 更新时间:2023-10-29 21:35:35 25 4
gpt4 key购买 nike

我正在从 jython 调用 java 库中的函数,该函数打印到标准输出。我想抑制 jython 脚本的输出。我尝试使用 python 惯用语将 sys.stdout 替换为类似对象 (StringIO) 的文件,但这不会捕获 java 库的输出。我猜 sys.stdout 不会影响 java 程序。在 jython 中是否有以编程方式重定向或抑制此输出的标准约定?如果不是,我可以通过什么方式实现?

最佳答案

你可以像这样使用System.setOut:

>>> from java.lang import System 
>>> from java.io import PrintStream, OutputStream
>>> oldOut = System.out
>>> class NoOutputStream(OutputStream):
... def write(self, b, off, len): pass
...
>>> System.setOut(PrintStream(NoOutputStream()))
>>> System.out.println('foo')
>>> System.setOut(oldOut)
>>> System.out.println('foo')
foo

请注意,这不会影响 Python 输出,因为 Jython 在启动时会获取 System.out,因此您可以按预期重新分配 sys.stdout

关于java - 从 Jython 控制标准输出/标准错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5048166/

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