首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

用javah生成JNI头文件的时分,发现自定义的函数名前自动加了一个数字1,为什么呢

2012-09-14 
用javah生成JNI头文件的时候,发现自定义的函数名前自动加了一个数字1,为什么呢?例如:函数名:nxw_at_fm(),n

用javah生成JNI头文件的时候,发现自定义的函数名前自动加了一个数字1,为什么呢?
例如:
函数名:nxw_at_fm(),nxw_chg_nmode()
头文件里变成了: Java_Nwar_nxw_1at_1fm, Java_Nwar_nxw_1chg_1nmode
这些1的前缀是默认规则?

[解决办法]
如果你不想函数名中有1你就不要让函数名中用'_',因为jni吧C函数名映射成java方法名的时候是com_mypackage_myclass_mymethod():com.mypackage.myclass.mymethod();也就是说jni是依靠'_'来间隔包、类、方法的,但是如果你的方法名中有'_'字符的话,jni必须能够区分方法名中的'_'字符还是间隔符,所以用加一个1后缀的方式来区分。

热点排行