JNI_CreateJavaVm分段错误

时间:2016-09-18 18:27:20

标签: java c++ c jvm java-native-interface

我正在通过Eclipse(Mars 2)使用MinGW_64编译我的代码。当我通过Eclipse(Run As)运行代码的发布版本时,JVM按预期创建(返回值为零)但是当我使用Eclipse(Debug As)调试并跨越JNI_CreateJavaVM行时,我得到一个分段错误在我单步执行之后,仍然会得到零返回值。

编程接收信号SIGSEGV,分段故障。 0x000000000f0103b4在? ()

有人可以解释为什么会这样吗?

这是代码(确保包含jni.h和jni_md.h文件以及jvm libraray中的链接 - 我使用的是Java jdk 1.8.0_101)。

/*
 * jnitest.c
 */
#include "jni.h"
JNIEnv* create_vm()
{
    JavaVM* jvm;
    JNIEnv* env;
    JavaVMInitArgs args;
    JavaVMOption options[1];

    args.version = JNI_VERSION_1_8;
    args.nOptions = 1;
    options[0].optionString = "-Djava.class.path=.";
    args.options = options;
    args.ignoreUnrecognized = JNI_TRUE;

    long result=JNI_CreateJavaVM(&jvm, (void **)&env, &args);
    printf("here is the result %li", result);
    return env;
}

int main(int argc, char **argv)
{
    JNIEnv* env = create_vm();
}

0 个答案:

没有答案