所以我需要使用jni来调用java方法。 我从这段代码开始:
JNIEnv *env1;
JavaVM** jvm1;
JavaVMInitArgs vm_args1;
JavaVMOption options1[1];
options1[0].optionString = "-Djava.class.path=D:\\Java Src\\TestStruct"; //Path to the java source code
vm_args1.version = JNI_VERSION_1_6; //JDK version. This indicates version 1.6
vm_args1.nOptions = 1;
vm_args1.options = options1;
vm_args1.ignoreUnrecognized = 0;
int reAt = JNI_CreateJavaVM(jvm1, (void**)&env1, &vm_args1);
if(reAt < 0)
Label1->Caption = "failed";
else
Label1->Caption = "Success";
我将jvm.lib转换为OMF lib,以便在我的构建器C ++应用程序中使用:
COFF2OMF jvm.lib jvm2.lib
我将jvm2.lib添加到库路径以修复有关JNI_CreateJavaVM函数的链接错误。
现在我的应用程序编译没有错误。
但它在调用JNI_CreateJavaVM函数时崩溃。
我在我的.exe
附近添加了jvm.dll那里的pb步骤是什么?
怎么能解决它?
THX
答案 0 :(得分:1)
JNI_CreateJavaVM
的第一个参数应该是指向JavaVM*
的有效指针:
JavaVM* jvm1;
int reAt = JNI_CreateJavaVM(&jvm1, ...);
在您的示例中,jvm1
未初始化。
详情请咨询the documentation。