尝试初始化vm_args时出错

pro*_*eve 5 c java java-native-interface

当我JDK1_1InitArgs使用JDK1_1InitArgs vm_args编译器初始化时给我错误.我需要初始化此变量才能使用该函数JNI_CreateJavaVM.

            JavaVM *jvm;
            JNIEnv *env;
            jmethodID mid;
            JDK1_1InitArgs vm_args; // Line 47
            vm_args.version = 0x00010001; // Line 48
            JNI_GetDefaultJavaVMInitArgs(&vm_args);
            vm_args.classpath = "C:/Program Files/Java/jdk1.7.0/lib;.;";

            JNI_CreateJavaVM(&jvm, &env, &vm_args);
            env = (*jvm)->AttachCurrentThread(jvm,&env,NULL);
            jclass cls = (*env)->GetObjectClass(env,Obj);
            mid = (*env)->GetMethodID(env,cls,"callBack","(Ljava/lang/String;)V");
            (*env)->CallVoidMethodA(env,Obj,mid,(*env)->NewStringUTF(env,"1B"));
Run Code Online (Sandbox Code Playgroud)

参考

错误:

在此输入图像描述

为什么我会收到这些错误?我怎么能摆脱他们?

Niv*_*ten 1

不再支持 JNI 1.1。请参阅 HotSpot 的评论jvm.h,就在 的定义之前struct JDK1_1InitArgs

启动程序使用此结构通过版本为 1.1 的 JNI_GetDefaultJavaVMInitArgs() 从 VM 获取默认线程堆栈大小。由于它不受其他支持,因此已从 jni.h 中删除

来源:http ://hg.openjdk.java.net/jdk7/jdk7/hotspot/file/tip/src/share/vm/prims/jvm.h ,第1673行

在 JDK 7 中创建 1.1 版本的 JVM 似乎是不可能的——这意味着您可能想要使用更高版本(例如 1.2),或者使用较旧的 JDK。