使用JNI在java模块中调用main方法

时间:2015-02-24 15:55:35

标签: java c java-native-interface

我一直在尝试调用类的main方法并传递一些参数。

我的代码如下:

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 个答案:

答案 0 :(得分:0)

您正在创建一个“myClass”数组而不是String

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