最近再给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

 package com.test;
public class test {
public native int[] test();//即要生成的C的函数
}

然后进入文件夹下,先执行>javac com\test\test.java生成class文件

然后在执行:>javah com.test.test后,在该文件下就可以生成com_test_test.h这个头文件

这个头文件内容为:

 /* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class com_test_test */ #ifndef _Included_com_test_test
#define _Included_com_test_test
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: com_test_test
* Method: test
* Signature: ()[I
*/
JNIEXPORT jintArray JNICALL Java_com_test_test_test
(JNIEnv *, jobject); #ifdef __cplusplus
}
#endif
#endif

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

JNI生成C的头文件的更多相关文章

  1. Android(java)学习笔记260:JNI之native方法头文件的生成

    1. JDK1.6 ,进入到工程的bin目录下classes目录下: 使用命令: javah  packageName.ClassName 会在当前目录下生成头文件,从头文件找到jni协议方法 下面举 ...

  2. Android(java)学习笔记204:JNI之native方法头文件的生成

    1. JDK1.6 ,进入到工程的bin目录下classes目录下: 使用命令: javah  packageName.ClassName 会在当前目录下生成头文件,从头文件找到jni协议方法 下面举 ...

  3. gcc如何生成预编译头文件(.gch)

    1 建立comm.h 2 main.c中包含comm.h : #include "comm.h" 3 gcc -o comm.h.gch comm.h(低版本gcc会有bug) 4 ...

  4. [JNI开发]使用javah命令生成.h的头文件

    第一步:进入对应的.java目录 javac xxx.java 生成对应的xxx.class文件 第二步:退回到/java目录 javah -classpath . -jni 包名.类名

  5. 使用Javah 生成C/C++头文件

    注意:编写java的接口文件. 注意native代码端一定不要有大括号,且要有“:”结尾. public native int add(int x ,int y); 1. 需要让eclipse自动编译 ...

  6. ubuntu下整合eclipse和javah生成jni头文件开发android的native程序(转)

    本文介绍两种利用javah命令生成jni头文件的方法,第一种为大众所知的javah命令,第二种为整合javah到eclipse里面.推荐第二种方式,方便快捷,随时修改随时生成 0:前提和条件: 1:u ...

  7. 【转】Eclipse中一键调用javah生成jni的头文件

    这里定义了一个本地方法jni_test,该方法返回一个String.其中System.loadLibrary是用来加载本地库的(dll或者so). 有了这个类以后,就可以调用javac命令编译,得到E ...

  8. 一键生成JNI头文件方法二

    经常使用java的同学一定都接触过JNI(Java Native Interface)吧.JNI为我们提供了java<---->C/C++之间的接口,使得我们可以在java中调用C程序,以 ...

  9. Java 生成 JNI 头文件

    [参考文章]:javah javac 命令行生成native的方法教程 [参考文章]:用javah 导出类的头文件, 常见的错误及正确的使用方法 项目需要调用 C++动态库,由于项目包结构发生变化,需 ...

随机推荐

  1. 怎样实现多文件上传 在iOS开发中

    NSURL* url = [NSURL URLWithString:@"xxx"]; ASIFormDataRequest* request = [ASIFormDataReque ...

  2. IOS学习之segmented control

    转载请注明出处 http://blog.csdn.net/pony_maggie/article/details/27086877 作者:小马 什么是segmented control? 先上几张图: ...

  3. transition与animation

    以前,一直都知道,transition是animation的一个简化版,甚至不算是动画,而是一种过渡. transition的用法 早两天用transition写了一个按钮滑动的效果,类似于IOS的设 ...

  4. Bandwidth内存带宽測试工具

    本博文为原创,遵循CC3.0协议,转载请注明出处:http://blog.csdn.net/lux_veritas/article/details/24766015 ----------------- ...

  5. ASP.NET - 锚点跳转,用于回到顶部

    <a name ="top"></a> <a href ="#top">回到顶部</a> 第一行代码写在顶部,第 ...

  6. 关于new enhancement的一些知识

    关于new enhancement sap源程序里也给我们留了很多. 以下例句point .section.spot说明这些知识点. 1.不管是point还是section 都是基于spot的,spo ...

  7. SSH2三大框架整合出错(四)

    <%@taglib prefix="c" uri="http://java.sun.com/jsf/core" %> usage: java org ...

  8. Java开源运行分析工具(转)

      FProfiler  FProfiler是一个非常快的Java profiler.它利用BCEL和log4j来记录每个方法从开始到结尾的日记.FProfiler可以用来在你的应用程序,Servle ...

  9. uva 10692 - Huge Mods(数论)

    题目链接:uva 10692 - Huge Mods 题目大意:给出一个数的次方形式,就它模掉M的值. 解题思路:依据剩余系的性质,最后一定是行成周期的,所以就有ab=abmod(phi[M])+ph ...

  10. SVM(三)—Kernels(核函数)

    (整理自AndrewNG的课件,转载请注明.整理者:华科小涛@http://www.cnblogs.com/hust-ghtao/) 内容整理中...