【发布时间】:2010-08-03 14:30:16
【问题描述】:
我正在尝试从 C++ 调用的 Java 方法传回一个字符串。我无法找出应该调用什么 JNI 函数来访问该方法并返回一个 jstring 值。
我的代码如下:
C++部分
main() {
jclass cls;
jmethodID mid;
jstring rv;
/** ... omitted code ... */
cls = env->FindClass("ClassifierWrapper");
mid = env->GetMethodID(cls, "getString","()Ljava/lang/String");
rv = env->CallStatic<TYPE>Method(cls, mid, 0);
const char *strReturn = env->GetStringUTFChars(env, rv, 0);
env->ReleaseStringUTFChars(rv, strReturn);
}
Java 代码
public class ClassifierWrapper {
public String getString() { return "TEST";}
}
方法签名(来自“javap -s Class”)
public java.lang.String getString();
Signature: ()Ljava/lang/String;
【问题讨论】:
标签: java c++ java-native-interface