2015-02-24 65 views
0

我一直在尝试调用一个类的主要方法并传递一些参数。使用JNI调用java模块的主要方法

我的代码如下:

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

但它似乎不起作用。 当我在java代码中打印args数组时,它将打印出null。

+1

你的意思' “世界!”',而不是'世界!“'? – 2015-02-24 16:00:26

回答

0

你正在创建 “MyClass的”,而不是一个String数组

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