使用 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);
我一直在尝试调用 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);