我有一个 Java 应用程序,它通过 JNI 调用一个用 C++ 编写的 DLL,然后这个 DLL 动态加载另一个 DLL。在某些情况下,在 Java 部分的 Stdout-Stream 中的某些计算机上,以某种方式写入 C++ 中的 cerr 的消息。无论是 C++ 部分还是 Java 部分,都没有任何标准流(cerr、cout、Stdout、Sterr 等)的显式重定向。
这怎么可能发生?如何确保 C++ 层的 cerr-stream 最终出现在 Java 层的 Stderr-stream 中?
JVM 在所有情况下都是一样的,
JRE 版本:6.0_27-b07,Java VM:Java HotSpot(TM) Client VM(20.2-b06 混合模式 windows-x86)