【发布时间】:2013-10-09 23:23:02
【问题描述】:
我有使用 JNI 运行 java 程序的 C++ dll,我正在尝试弄清楚如何捕获该 java 程序的输出。我尝试使用字符串流将标准输出重定向到缓冲区,但这似乎只获取来自我的 dll 的输出。我可以在 System.out 中阅读哪些内容?
这是我现在正在尝试的,但不起作用:
using namespace std;
stringstream buffer;
streambuf * old = cout.rdbuf(buffer.rdbuf());
//run java stuff here
在我这样做之后,buffer.str() 仍然是空的,即使 java 方法正确执行并且在这些方法中有 System.out.println() 调用。如果我执行cout << "test" << endl; 之类的操作,buffer.str() 会获取该文本,因此缓冲区似乎没有问题。我在这里有什么选择?
【问题讨论】:
标签: java c++ java-native-interface