Game Development Reference
In-Depth Information
int i;
jstring jrow;
for (i = 0; i < clen; i++)
{
// Get C string from Java String[i]
jrow = (jstring)(*env)->GetObjectArrayElement(env, jargv, i);
const char *row = (*env)->GetStringUTFChars(env, jrow, 0);
args[i] = malloc( strlen(row) + 1);
strcpy (args[i], row);
// Print args
jni_printf("Main argv[%d]=%s", i, args[i]);
// Free Java string jrow
(*env)->ReleaseStringUTFChars(env, jrow, row);
}
/*
* Load the jni.Natives class
*/
jNativesCls = (*env)->FindClass(env, CB_CLASS);
if ( jNativesCls == 0 ) {
jni_printf("Unable to find class: %s", CB_CLASS);
return -1;
}
// Invoke the Lib main sub. This will loop forever
// Program args come from Java
lib_main (clen, args);
return 0;
}
/**
* Send a string back to Java
*/
jmethodID mSendStr;
static void jni_send_str( const char * text, int level) {
JNIEnv *env;
if ( !g_VM) {
printf("I_JNI-NOVM: %s\n", text);
return;
}
(*g_VM)->AttachCurrentThread (g_VM, (void **) &env, NULL);
// Load jni.Natives if missing
Search WWH ::




Custom Search