我想知道,java stderr通常在哪里?
[我知道我可以使用System.setErr更改stderr,它'重新分配“标准”错误输出流。,但我不知道哪个是“标准”。
我想进一步说明我的问题:我有在Java(jni)中使用的C ++库。问题是看来我看不到来自C ++库的stderr输出。当我运行使用库的Java api时,我在C ++库中调用assert(),但在控制台中看不到输出。]
我想知道,java stderr通常在哪里?我知道我可以使用System.setErr更改stderr,它“重新分配“标准”错误输出流。”但我不知道哪个是“ ...”>
进入流程的标准错误流,无论设置为什么。
默认情况下,System.err是控制台,就像System.out。
调用者的文件描述符2。它从何而来-取决于调用者。在控制台上,您可以将其重定向到其他地方,例如:
我刚刚编写了一个执行System.err.println
的小测试程序,它似乎会输出到控制台。
这应该转到java.io.FileDescriptor.errhttps://docs.oracle.com/javase/1.5.0/docs/api/java/io/FileDescriptor.html
标准错误输出流进入控制台。该流已经打开并且准备接受输出数据。