如何在JNI中找到对象的字段描述符?

时间:2010-06-15 18:45:08

标签: java java-native-interface

通过JNI环境变量调用GetFieldID方法时,需要为所需字段提供字段描述符。你如何找到对象的字段描述符是什么?

示例:

jfieldID strField = env->GetFieldID(myClass, "example", "Ljava/lang/String;");

我如何确定“Ljava / lang / String;”是String对象的字段描述符吗?

2 个答案:

答案 0 :(得分:2)

javap工具将告诉您类的字段描述符是什么。要使用它,请导航到包含要编辑的字段的已编译.class文件的目录,并运行以下命令:

javap -s -p MyClass

此命令将打印出该类的所有字段描述符。

但是,一般而言,大多数(非主要)描述符的形式为“Lfully / qualified / name / of / MyClass;”。

答案 1 :(得分:1)

JNI documentation描述了如何将java类型转换为JNI支持的类型字符串。在到达fieldId之前,您需要知道类型。