1 javah --help 帮助说明乱码说明
javah --help输出内容采用的是utf-8编码,在cmd打开可能出现乱码,因此执行指令chcp 936,指定编码字符集(cmd默认的字符编码集是GBK)
2 javah 参数说明
javah --help
用法:
javah [options] <classes>
其中, [options] 包括:
-o <file> 输出文件 (只能使用 -d 或 -o 之一)
-d <dir> 输出目录
-v -verbose 启用详细输出
-h --help -? 输出此消息
-version 输出版本信息
-jni 生成 JNI 样式的标头文件 (默认值)
-force 始终写入输出文件
-classpath <path> 从中加载类的路径
-cp <path> 从中加载类的路径
-bootclasspath <path> 从中加载引导类的路径
<classes> 是使用其全限定名称指定的
(例如, java.lang.Object)。
实战例子:
Eclipse创建Android工程,顶级目录文件夹如下:bin gen res src libs,创建jni文件夹
说明:
-d 或者 -o参数只能使用其中的一个,并且必须在其他选项之前使用,否则出现不可预测的错误
-d只能指定输出h文件的目录,而-o参数可以指定输出到某一个特定目录,并且指定文件名
-classpath 从中加载类的路径,这句话应该是java编译器加载java包的路径,这个路径应该是包所在的路径,很多的时候直接填写java类所在的目录是错误的,对于上面的工程很好理解 如果当前已经在工程顶级目录,直接写 -classpth src/ 即可
-jni 该参数指定生成h文件的java类,必须在前面添加包名(完整的是包名+类名),比如src/目录下,有一个cn.search的包,包有一个PoiResolver类(该类定义了native函数,需要在jni中实现)可以这么写:-jni cn.search.PoiResolver
完整的命令:
javah -d jni/ -classpth src/ -jni cn.search.PoiResolver