java stderr去哪儿了?

8 c++ java java-native-interface stderr

我想知道,java stderr在哪里标准化了?

我知道我可以使用System.setErr更改stderr,'重新分配"标准"错误输出流.',但我不知道,哪一个是"标准".

我想更多地指出我的问题:我在java(jni)中使用了C++库.问题是看起来我无法看到来自我的C++库的输出到stderr.我在C++库中调用assert(),当我运行使用该库的java api时,在控制台中看不到输出.

Jon*_*eet 14

无论设置如何,它都会进入流程的标准错误流.

  • 如果从控制台运行应用程序,它也可能会写入控制台.
  • 在GUI中,标准输出/错误通常被丢弃,即输出丢失.
  • 在服务(例如Web服务器)中,标准错误/输出通常在某个地方的旋转日志文件中捕获,但它完全取决于服务.

大多数平台允许您将标准错误流重定向到其他位置(例如,文本文件).

System.setErr的想法是允许您使用进程本身的标准错误流,而是更改它以便对System.err.printlnetc的调用转到给定的流.


Joo*_*kka 3

默认情况下,System.err 是控制台,就像 System.out 一样。