如何将字符串数组从C++返回到Java(JNI)

How to return String Array from C++ to Java (JNI)

本文关键字:Java JNI 返回 C++ 字符串 数组      更新时间:2023-10-16

我在 c++ 上有一个字符串数组,我需要将其返回到 Java 类。我该怎么做?

我试过这个:

string paroleord[app.size()];
jobjectArray ret;
ret = (jobjectArray)env->NewObjectArray(app.size(),env->FindClass("java/lang/String"), 0);
for (int k = 0; k < app.size(); k++)
{
    env->SetObjectArrayElement(ret, k,env->NewStringUTF(paroleord[k]));
}
return ret;

但是我有一个错误,因为NewStringUTF需要一个对象作为参数,你能帮我吗?

如果你能用VectorArray生存下来,你可以简单地从C++代码中返回集合。

这将需要一些"低级"编码,但它相当简单。

看看这里:

http://jnicookbook.owsiak.org/recipe-no-045/

至于字符串本身,看看这里:

http://jnicookbook.owsiak.org/recipe-No-010/

此外,请确保将string转换为字符数组。

(*env)->NewStringUTF(env, my_string.c_str());