javah生成的头文件在方法名前加1
今天编程的时候遇到,
java类中的本地函数声明是:
private native static int open_device(String path);
而在生成的头文件中确实这样的:
JNIEXPORT jint JNICALL Java_com_coban_a83tled_A83TLed_open_1device(JNIEnv *, jclass, jstring);明显在方法名中多了一个1;
然后我把函数名声明称这样:
private native static int open(String path);
而生成的头文件中是这样的:
JNIEXPORT jint JNICALL Java_com_coban_a83tled_A83TLed_open (JNIEnv *, jclass, jstring);很明显这样没有1;
然后我把函数名声明称这样:
private native static int open_led_device(String path);
而生成的头文件中是这样的:
JNIEXPORT jint JNICALL Java_com_coban_a83tled_A83TLed_open_1led_1device (JNIEnv *, jclass, jstring);很明显多了俩1
通过这样可以看出来,和函数声明中的下划杠“_”有关。经过查资料,因为jni把C函数名映射成java方法名的时候是com_mypackage_myclass_mymethod();com.mypackage.myclass.mymethod();也就是说jni是依靠下划杠'_'来间隔包、类、方法的,但是如果你的方法名中有'_'字符的话,jni必须能够区分方法名中的'_'字符还是间隔符,所以用加一个1后缀的方式来区分。
所以声明的时候还是要注意点,不过不影响我们使用。
借鉴了:
http://www.01yun.com/other/20160308/658170.html
http://www.myexception.cn/j2se/681720.html
在这里表示感谢。
javah生成的头文件在方法名前加1相关推荐
- 解决javah生成c头文件时找不到android类库的问题
解决javah生成c头文件时找不到android类库的问题 参考文章: (1)解决javah生成c头文件时找不到android类库的问题 (2)https://www.cnblogs.com/liul ...
- Javah生成JNI头文件,老忘记,写下来!
Javah生成JNI头文件,老忘记,写下来! 假设工程目录下有bin文件夹,bin存放编译好的class文件; 在bin目录下, C:/XX/bin/: javah -classpath . -jni ...
- Python中的方法名前加下划线
在Python中,方法名前加下划线通常有以下几种用法和约定: 单个前导下划线(_methodName):这是一种约定,用于指示该方法是类的内部使用方法,应该被视为私有方法.虽然在语法上并没有强制限制, ...
- javah生成JNI头文件
Administrator@ibm /cygdrive/z/workspace/com.example.hellojni.hellojni/src <---- 从此文件夹执行 javah *** ...
- android studio生成Jni头文件 java10,java11删除了javah,改用javac直接用源码生成jni头文件。 java8是用javah
android studio生成Jni头文件 鼠标放本地方法上去,点提示来创建. java10,java11及以上 生成jni头文件 java10,java11删除了javah.改用javac直接 ...
- gsoap 学习 1-由wsdl文件生成h头文件
开始前先看一下用户向导吧 http://www.cs.fsu.edu/~engelen/soap.html 中左侧点击Documentation 英语水平确实有限,有些内容可能说的不准确,敬请参考向导 ...
- AndroidStudio快速生成JNI头文件
依次打开Settings-->Tools-->External Tools-->点击加号创建一个快速生成jni头文件的工具 Program: javah Parameters: -v ...
- linux 目录中的文件和子目录生成jar包文件的方法
linux 目录中的文件和子目录生成jar包文件的方法 jar cvf spark-libs.jar -C //usr/cwgis/app/spark/jars/ .//注意:.点前面有一个空格 [r ...
- python亿级mysql数据库导出_Python实现将MySQL数据库表中的数据导出生成csv格式文件的方法...
本文实例讲述了python实现将MySQL数据库表中的数据导出生成csv格式文件的方法.分享给大家供大家参考,具体如下: #!/usr/bin/env python # -*- coding:utf- ...
- python处理文本文件实现生成指定格式文件的方法
python处理文本文件实现生成指定格式文件的方法 关于python处理文本文件实现生成指定格式文件,很多朋友都不知道该怎么弄. 下面是具体代码,希望对大家有帮助 可以在下面复制: import os ...
最新文章
- R语言abline函数为图像添加竖线、横线、斜线、回归线实战
- 基于Log4net插件
- [源码]python Scapy Ftp密码嗅探
- [LeetCode]题解(python):011-Container With Most Water
- Day24-Ajax文件上传
- 05 - @property 后面所加的关键词
- iOS 5.0.1完美越狱教程
- 实现Servlet虚拟路径的映射
- linux服务器上svn的log_SVN如何查看修改的文件记录
- w10 Sentinel的下载和安装
- java多表查询实体类_自己设计一个JAVA+MyBatis解析实体类多表通用查询
- bp神经网络数据预测实例,bp网络神经预测模型
- Java中jdk安装与环境变量配置
- C语言程序设计实验报告——实验三
- 公司邮箱地址格式是什么?邮箱地址怎么写?邮箱地址大全
- linux系统下解压缩
- Mybatis和MybatisPlus3.4的使用
- 宏碁星锐4750的安装驱动步骤
- 用Java编写的双色球摇奖系统
- IDEA安装、配置及卸载