这两天在搞NDK开发,JNI的头文件进行编译的时候,要跑到对应的class文件路径下(通常是工程的bin目录),进行编译生成,很是不便,也容易出错,所以考虑在Eclipse中作为外部工具引入,所以便查了下资料,现记录下来。
方法是:
1、在Eclipse环境下,打开下图中的最右边那个按钮。
2、新建一个Program,写上名字比如“javaH”,然后填写下面几项内容:
2.1、Location:把JDK下面的javaH.exe的全路径填进来。
2.2、Working Directory:
- ${project_loc}/bin
${project_loc}为在Eclipse环境下的变量,是工程路径的意思,定位到该路径的bin目录下,也就是classes文件存放的路径。
2.3、参数:
- Arguments: -classpath .;./classes -d "${project_loc}/jni" -jni ${java_type_name}
-classpath设定为”.;./classes“,意思是当前路径,这样可以让你需要编译的类中引用到的其他类也能被找到。
-d设定为”${project_loc}/jni“,也就是编译出来的H文件生成到工程下面的jni文件夹去。
${java_type_name}是需要编译的类名。
3、跑到Eclipse工程中选中一个需要编译的类,然后按这个按钮试试。是不是在你的jni文件夹下生成了?
末了,补充一句,在命令行下标准的编译命令为下述:
- javah -classpath A -d B -jni C
A:class文件的路径
B:H文件的生成路径
C:类的全称