Hi there,
I cannot start the VM with a C++ method. The method looks
like this:
void main (int argc, char *argv [])
{
JNIEnv *env;
JavaVM *jvm;
JavaVMInitArgs vm_args;
JavaVMOption options[2];
jint res;
jclass cls;
jmethodID mid;
jstring jstr;
jobjectArray args;
char classpath[1024];
char buffer [512], *psz;
// JNI_GetDefaultJavaVMInitArgs(&vm_args);
options[0].optionString = ".";
// options[0].optionString = "-verbose:jni";
options[1].optionString = "-Djava.compiler=NONE";
vm_args.version = JNI_VERSION_1_2;
vm_args.options = options;
vm_args.nOptions = 2;
vm_args.ignoreUnrecognized = JNI_FALSE;
/* Create the
Java VM */
res = JNI_CreateJavaVM(&jvm, (void**)&env, &vm_args);
fprintf(stderr, "Starting VM\n");
if (res < 0)
{
switch ( res )
{
case -1:
fprintf(stderr, "/* unknown error */\n");
break;
case -2:
fprintf(stderr, "/*
thread detached from the VM */\n");
break;
case -3:
fprintf(stderr, "/* JNI version error */\n");
break;
case -4:
fprintf(stderr, "/* not enough memory */\n");
break;
case -5:
fprintf(stderr, "/* VM already created */\n");
break;
case -6:
fprintf(stderr, "/* invalid arguments */\n");
break;
default:
fprintf(stderr, "Can't create Java VM\n");
}
exit(1);
return 123;
}
fprintf(stderr, "Seems to run");
cls = env->FindClass("te");
if (cls == 0) {
fprintf(stderr, "Can't find hello class\n");
exit(1);
}
jvm->DestroyJavaVM();
// return 0;
}
The program returns with -1 (unknow error). How can I get
some more detailed information on what is the problem ?
Did anyone make the same experience ?
Regards,
Tobias