2012-06-06 15 views
5

Cuando inicializo JDK1_1InitArgs usando el compilador JDK1_1InitArgs vm_args me da errores. Necesito esta variable inicializada para usar la función JNI_CreateJavaVM.errores al intentar inicializar vm_args

  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")); 

Reference

Errores:

enter image description here

¿Por qué recibo estos errores? ¿Cómo puedo deshacerme de ellos?

+1

Esa estructura puede haberse eliminado del archivo de encabezado. Ver [este informe de error aquí.] (Http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5031222) – JoeFish

+0

@JoeFish ¿cuál es la alternativa? –

+0

No lo sé, razón por la cual no lo publiqué como respuesta. Estoy seguro de que algunas búsquedas más de Google arrojarían la solución. – JoeFish

Respuesta

1

JNI 1.1 ya no es compatible. Ver un comentario de HotSpot de jvm.h, justo antes de la definición de struct JDK1_1InitArgs:

Esta estructura es utilizada por el lanzador para obtener el tamaño de pila predeterminado hilo de la máquina virtual mediante JNI_GetDefaultJavaVMInitArgs() con una versión de 1,1. Ya que no se admite en caso contrario, se ha eliminado de jni.h

Fuente: http://hg.openjdk.java.net/jdk7/jdk7/hotspot/file/tip/src/share/vm/prims/jvm.h, línea 1673

Parece ser imposible crear una JVM 1.1 versionado en el JDK 7 - lo que significa que es posible que desee utilizar una versión posterior, como 1.2, o utilizar un JDK anterior.

Cuestiones relacionadas