John Doe
John Doe

Reputation: 169

call main method in java module using JNI

I've been trying to call the main method of a class and pass it some arguments.

My code is as below:

args = (*env)->NewObjectArray(env, 2, myClass, NULL);
arg1 = (*env)->NewStringUTF(env, "Hello");
arg2 = (*env)->NewStringUTF(env, World!");
(*env)->SetObjectArrayElement(env, args, 0, arg1);
(*env)->SetObjectArrayElement(env, args, 1, arg2);
(*env)->CallStaticVoidMethod(env, myClass, mainMethod, args);

But it seems that it doesn't work. When I print the args array in the java code it prints null.

Upvotes: 1

Views: 346

Answers (1)

user2543253
user2543253

Reputation: 2173

You're creating an Array of "myClass" instead of String

stringClass = (*env)->FindClass(env, "java/lang/String");
args = (*env)->NewObjectArray(env, 2, stringClass, NULL);

Upvotes: 1

Related Questions