草庐IT

java - 在 System.setOut 之后写入真正的 STDOUT

我正在尝试拦截System.out和System.err,但保持必要时直接写入原始流的能力。PrintStreamps=System.out;System.setOut(newMyMagicPrintStream());ps.println("foo");不幸的是,System类的实现细节意味着在我的示例中,“foo”被发送到MyMagicPrintStream而不是真正的stdout。有谁知道如何获取对真实/原始OutputStreams的引用?谢谢。PS:否则会导致StackOverflowError 最佳答案 试试这个:Pri

java - 在 System.setOut 之后写入真正的 STDOUT

我正在尝试拦截System.out和System.err,但保持必要时直接写入原始流的能力。PrintStreamps=System.out;System.setOut(newMyMagicPrintStream());ps.println("foo");不幸的是,System类的实现细节意味着在我的示例中,“foo”被发送到MyMagicPrintStream而不是真正的stdout。有谁知道如何获取对真实/原始OutputStreams的引用?谢谢。PS:否则会导致StackOverflowError 最佳答案 试试这个:Pri

java - 在 Java 6 中使用继承的 stdin/stdout/stderr 启动进程

如果我通过Java的ProcessBuilder启动一个进程类,我可以完全访问该进程的标准输入、标准输出和标准错误流,如JavaInputStreams和OutputStreams。但是,我找不到将这些流无缝连接到System.in、System.out和System.err的方法。可以使用redirectErrorStream()来获取单个InputStream包含子进程的标准输出和标准错误,然后循环并通过我的标准发送它出——但我找不到一种方法来做到这一点并让用户输入进程,如果我使用Csystem()调用,他或她可以。当JavaSE7出现时,这似乎是可能的——我只是想知道现在是否有解

java - 在 Java 6 中使用继承的 stdin/stdout/stderr 启动进程

如果我通过Java的ProcessBuilder启动一个进程类,我可以完全访问该进程的标准输入、标准输出和标准错误流,如JavaInputStreams和OutputStreams。但是,我找不到将这些流无缝连接到System.in、System.out和System.err的方法。可以使用redirectErrorStream()来获取单个InputStream包含子进程的标准输出和标准错误,然后循环并通过我的标准发送它出——但我找不到一种方法来做到这一点并让用户输入进程,如果我使用Csystem()调用,他或她可以。当JavaSE7出现时,这似乎是可能的——我只是想知道现在是否有解

处置stdout的内容

我正在编写一个应用程序来管理流程和处理故障转移。该程序用C#for.NETCore编写,并将在UbuntuServer16.04x64上运行。我有此代码来创建流程并跟踪它们,并通过退出事件等ProcessStartInfopsi=newProcessStartInfo{WorkingDirectory="/home/xyzserver/someprocess",FileName="mono",Arguments="someprocess.exe",RedirectStandardOutput=true};_proc=Process.Start(psi);_proc.EnableRaisingE

java - 在 Java 中,如何将 System.out 重定向到 null 然后再次返回到 stdout?

我尝试使用以下代码将System.out临时重定向到/dev/null,但它不起作用。System.out.println("thisshouldgotostdout");PrintStreamoriginal=System.out;System.setOut(newPrintStream(newFileOutputStream("/dev/null")));System.out.println("thisshouldgoto/dev/null");System.setOut(original);System.out.println("thisshouldgotostdout");//

java - 在 Java 中,如何将 System.out 重定向到 null 然后再次返回到 stdout?

我尝试使用以下代码将System.out临时重定向到/dev/null,但它不起作用。System.out.println("thisshouldgotostdout");PrintStreamoriginal=System.out;System.setOut(newPrintStream(newFileOutputStream("/dev/null")));System.out.println("thisshouldgoto/dev/null");System.setOut(original);System.out.println("thisshouldgotostdout");//

java - 将错误记录到 stderr 和调试,使用 log4j 将信息记录到 stdout

我想使用apachelog4j将日志记录添加到我正在开发的应用程序中。此时,我想将级别INFO和更低级别(TRACE、DEBUG)的所有日志消息重定向到stdout,并将所有其他日志消息从WARN及更高级别(ERROR,FATAL)重定向到stderr。例如:...logger.info("Processingatsomepoint");//mustbewrittentostdoutlogger.debug("Pointxwasprocessed");//mustbewrittentostdoutlogger.warn("Incorrectpointconfig");//mustbew

java - 将错误记录到 stderr 和调试,使用 log4j 将信息记录到 stdout

我想使用apachelog4j将日志记录添加到我正在开发的应用程序中。此时,我想将级别INFO和更低级别(TRACE、DEBUG)的所有日志消息重定向到stdout,并将所有其他日志消息从WARN及更高级别(ERROR,FATAL)重定向到stderr。例如:...logger.info("Processingatsomepoint");//mustbewrittentostdoutlogger.debug("Pointxwasprocessed");//mustbewrittentostdoutlogger.warn("Incorrectpointconfig");//mustbew

java - 将控制台输出重定向到Java中的字符串

我有一种方法,它的返回类型是void,它直接在控制台上打印。但是我需要在字符串中输出该输出,以便我可以处理它。由于我无法对返回类型为void的方法进行任何更改,因此我必须将该输出重定向到字符串。如何在Java中重定向它? 最佳答案 如果函数正在打印到System.out,您可以使用System.setOut方法来捕获该输出以更改System.out转到您提供的PrintStream。如果您创建一个连接到ByteArrayOutputStream的PrintStream,那么您可以将输出捕获为String。例子://Createast