问题已解决。
搜索更多内容后,我发现了这篇文章http://docs.oracle.com/javase/1.4.2/docs/guide/jni/jni-12.html#JNI_OnLoad
在它的底部附近是一个很好的示例,说明了如何传递多个选项以及如何命名它们。原来-Xcheck:jni是作为-
DXcheck:jni传递的(jni:pedantic也可以),当我将strcpy从代码中移出后,我不再获得崩溃转储。我怀疑这是罪魁祸首,但其中一个骗人。
这是更新的代码位:
JNIEnv* create_vm(JavaVM ** jvm){ JNIEnv *env; JavaVMInitArgs vm_args; JavaVMOption options[2]; options[0].optionString = CLASSPATH; //"-Djava.class.path=/scratch/workareas/JTest/Java/" options[1].optionString = "-DXcheck:jni:pedantic"; vm_args.version = JNI_VERSION_1_6; //JDK version. This indicates version 1.6 vm_args.nOptions = 2; vm_args.options = options; vm_args.ignoreUnrecognized = JNI_TRUE; //drop unrecognized options int ret = JNI_CreateJavaVM(jvm, (void**) &env, &vm_args); if (ret < 0) printf("n<<<<< Unable to Launch JVM >>>>>n"); return env;}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)