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 がメッセージ I want to stdout または stderr を出力しているように見えます。探しているエラーを取得するには、stdout と stderr をキャプチャする必要があると思います (もちろん、もっと簡単な方法がない限り)。私はC++でコーディングしているので、誰かがエラーを文字列ストリームにキャプチャする方法を示すことができれば理想的です。
ありがとう、ランディ