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