2023-01-21 270
我想通过C代码
将以下指针数组通过JNI层
char *result[MAXTEST][MAXRESPONSE] = {
{ "12", "12", "" },
{ "8", "3", "" },
{ "29", "70", "" },
{ "5", "2", "" },
{ "42", "42", "" }
};
在Java代码中,我写了以下声明
public static native String[][] getResult();
我很困惑如何将该数组通过JNI层传递到Java代码???以下是JNI层描述
JNIEXPORT jobjectArray JNICALL Java_com_example_CheckResult_getResult
(JNIEnv *env, jclass thiz) {
Confused over here ????
}
终于在工作了几个小时后,在JOP共享链接,我可以解决我的问题.代码如下:
JNIEXPORT jobjectArray JNICALL Java_com_example_CheckResult_getResult(JNIEnv *env, jclass thiz) {
jboolean flag = JNI_TRUE;
jclass stringClass = (*env)->FindClass(env, "java/lang/String");
jobjectArray row;
jobjectArray rows;
jsize i, j;
for(i=0; i<5; i++) {
row = (*env)->NewObjectArray(env, MAXRESPONSE, stringClass, 0);
for(j=0; j<3; j++) {
(*env)->SetObjectArrayElement(env, row, j, (*env)->NewStringUTF(env, userResponse[i][j]));
}
if(flag == JNI_TRUE) {
flag = JNI_FALSE;
rows = (*env)->NewObjectArray(env, MAXTEST, (*env)->GetObjectClass(env, row), 0);
}
(*env)->SetObjectArrayElement(env, rows, i, row);
}
return rows;
}
以上所述是小编给大家介绍的jni Pass char* 2D数组到Java代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!
原文链接:https://77isp.com/post/26256.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态