JNIEXPORT jstring JNICALL Java_com_xxx_xpdf_PdfToText_getTextOnly(JNIEnv *env, jclass obj,
jstring pdf_path) {
const char *pdf = env->GetStringUTFChars(pdf_path, 0);
std::string content;
unsigned int i = getTextFromPDF(pdf, &content);
env->ReleaseStringUTFChars(pdf_path, pdf);
const char *result = content.c_str();
jstring str = env->NewStringUTF(result);
return str;
}
我需要在这里释放
str
和content
吗?为什么?
不。
str
指的是在该 JNI 方法之外继续存在的 Java 对象,因为它是返回值。 content
是一个 C++ 本地对象,当其声明范围退出时会自动销毁。