我想检索一条错误消息,解释为什么 jvm 无法加载。从此处提供的示例中:
http://java.sun.com/docs/books/jni/html/invoke.html
我提取了这个例子:
/* Create the Java VM */
res = JNI_CreateJavaVM(&jvm, (void**)&env, &vm_args);
if (res < 0) {
// retrieve verbose error here?
fprintf(stderr, "Can't create Java VM\n");
exit(1);
}
在我的具体情况下,我在 vm_args 中提供了无效的参数,并希望看到我在命令行上得到什么:“无法识别的选项:-foo=bar”
在进一步测试中,jvm 似乎正在将我想要的消息放入 stdout 或 stderr。我相信我需要捕获 stdout 和 stderr 才能得到我正在寻找的错误(当然,除非有更简单的方法)。我正在用 C++ 编码,所以如果有人可以展示一种将错误捕获到字符串流中的方法,那将是理想的。
谢谢,兰迪