有没有办法调用java方法,它在C中返回String
?
Integer
就像那样:
JNIEXPORT jint JNICALL Java_Client_getAgeC(JNIEnv *env, jobject callingObject, jobject employeeObject) {
jclass employeeClass = (*env)->GetObjectClass(env, employeeObject);
jmethodID midGetAge = (*env)->GetMethodID(env, employeeClass, "getAge", "()I");
int age = (*env)->CallIntMethod(env, employeeObject, midGetAge);
return age;
}
我搜索了很长时间,但String
无效。
最后,我希望获得char*
提前谢谢!
答案 0 :(得分:0)
以下是调用返回字符串的方法的JNI代码示例。希望这会有所帮助。
{{1}}
答案 1 :(得分:0)
在Java中,定义本机方法
public class Client {
public static native getVorname(int employeeNumber);
}
这是C面:
Employee employees[100];
JNIEXPORT jstring JNICALL Java_Client_getVorname(JNIEnv *env, jclass clientClass, jint employeeNumber) {
if (employeeNumber < 0 || employeeNumber > 100) {
return NULL;
}
Employee* ptr = employees[employeeNumber];
return (*env)->NewStringUTF(env, ptr->vorname);
}