返回 Java 控制台
我正在编写一个插入更大框架的 Java 类。在上游的某个地方,代码将 System.out 重定向到标准输出以外的其他地方,但我真的想将调试消息打印到标准输出。有没有办法让我将钩子恢复到标准输出?
I'm writing a Java class which plugs into a larger framework. Somewhere upstream, the code is redirecting System.out to somewhere other than standard out, but I really want to print a debugging message to standard out. Is there a way for me to get a hook back into standard out?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
也许更简单的解决方案是使用 System.err 而不是 System.out 来调试消息?这会容易得多,并且不会引入重定向的任何副作用。
Perhaps an easier solution is to use System.err instead of System.out for debugging messages? It would be a lot easier and would not introduce any side-effects of that redirection.
为什么不使用
System.err
?我看到的最简单的解决方案是在调用库之前将 System.out 存储在类中的某个位置。
环顾四周后,您应该能够使用 System.console().printf(...)。
Why not use
System.err
?The most straightforward solution I see is just store
System.out
somewhere in your class before calling the library.After looking around a bit, you should be able to use
System.console().printf(...)
.你可以简单地写:
You can simply write: