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

call main method in java module using JNI

我一直在尝试调用 class 的主要方法并向其传递一些参数。

我的代码如下:

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.

您正在创建 "myClass" 的数组而不是字符串

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