Java Native Interface(JNI):C/C++ 与 Java 的交互指南
1. JNI 基础操作
在 JNI 中,我们常常需要对对象数组进行操作。 GetArrayLength
函数可用于获取对象数组的长度,接着使用 GetObjectArrayElement
函数来访问数组中的特定元素。需要注意的是,获取到的对象要转换为 jstring
类型,以便处理数组元素的具体类型。同时,由于 GetObjectArrayElement
函数返回的是本地引用,我们可以使用 DeleteLocalRef
函数释放该引用。虽然在某些情况下,调用 DeleteLocalRef
并非必需,但许多本地函数返回的本地引用都需要进行清理。
以下是一个简单的代码示例,展示了如何在数组中查找特定字符串:
// 代码片段
break;
}
env->ReleaseStringChars(strElem, strTemp);
env->DeleteLocalRef(strElem);
}
env->ReleaseStringChars(strToFind, findStr);
}
if(i == arrayLen) {
return(-1);
} else {
return(i);
}
2. 在 C/C++ 中操作 Java 对象
JNI 提供了一系列函数,用于在本地