JNI生成C的头文件
最近再给android封装一个C语言的so,以供安卓程序下使用。
再次记录一下,防止以后忘记了。
首先下载安装JDK,下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html
然后进行环境配置:
我用的是win7系统,步骤为:计算机--属性--高级系统设置--环境变量--系统变量
添加:
变量名 变量值
JAVA_HOME C:\Program Files\Java\jdk1.7.0_09
path C:\Program Files\Java\jdk1.7.0_09\bin
classpath .;C:\Program Files\Java\jdk1.7.0_09\lib\tools.jar;C:\Program Files\Java\jdk1.7.0_09\libdt.jar;C:\Program Files\Java\jdk1.7.0_09\bin
然后点确定,在cmd命令框中输入
javac和javah查看命令是不是成功。
出现以上信息即为成功。
然后写一个java文件,我的是一个test.java文件,包名为com.test
1 package com.test; 2 public class test { 3 public native int[] test();//即要生成的C的函数 4 }
然后进入文件夹下,先执行>javac com\test\test.java生成class文件
然后在执行:>javah com.test.test后,在该文件下就可以生成com_test_test.h这个头文件
这个头文件内容为:
1 /* DO NOT EDIT THIS FILE - it is machine generated */ 2 #include <jni.h> 3 /* Header for class com_test_test */ 4 5 #ifndef _Included_com_test_test 6 #define _Included_com_test_test 7 #ifdef __cplusplus 8 extern "C" { 9 #endif 10 /* 11 * Class: com_test_test 12 * Method: test 13 * Signature: ()[I 14 */ 15 JNIEXPORT jintArray JNICALL Java_com_test_test_test 16 (JNIEnv *, jobject); 17 18 #ifdef __cplusplus 19 } 20 #endif 21 #endif
这样生成头文件即可完成。