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
View Code

这样生成头文件即可完成。

posted @ 2013-09-04 13:36  蓝夜  阅读(498)  评论(0编辑  收藏  举报