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
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的头文件的更多相关文章
- Android(java)学习笔记260:JNI之native方法头文件的生成
1. JDK1.6 ,进入到工程的bin目录下classes目录下: 使用命令: javah packageName.ClassName 会在当前目录下生成头文件,从头文件找到jni协议方法 下面举 ...
- Android(java)学习笔记204:JNI之native方法头文件的生成
1. JDK1.6 ,进入到工程的bin目录下classes目录下: 使用命令: javah packageName.ClassName 会在当前目录下生成头文件,从头文件找到jni协议方法 下面举 ...
- gcc如何生成预编译头文件(.gch)
1 建立comm.h 2 main.c中包含comm.h : #include "comm.h" 3 gcc -o comm.h.gch comm.h(低版本gcc会有bug) 4 ...
- [JNI开发]使用javah命令生成.h的头文件
第一步:进入对应的.java目录 javac xxx.java 生成对应的xxx.class文件 第二步:退回到/java目录 javah -classpath . -jni 包名.类名
- 使用Javah 生成C/C++头文件
注意:编写java的接口文件. 注意native代码端一定不要有大括号,且要有“:”结尾. public native int add(int x ,int y); 1. 需要让eclipse自动编译 ...
- ubuntu下整合eclipse和javah生成jni头文件开发android的native程序(转)
本文介绍两种利用javah命令生成jni头文件的方法,第一种为大众所知的javah命令,第二种为整合javah到eclipse里面.推荐第二种方式,方便快捷,随时修改随时生成 0:前提和条件: 1:u ...
- 【转】Eclipse中一键调用javah生成jni的头文件
这里定义了一个本地方法jni_test,该方法返回一个String.其中System.loadLibrary是用来加载本地库的(dll或者so). 有了这个类以后,就可以调用javac命令编译,得到E ...
- 一键生成JNI头文件方法二
经常使用java的同学一定都接触过JNI(Java Native Interface)吧.JNI为我们提供了java<---->C/C++之间的接口,使得我们可以在java中调用C程序,以 ...
- Java 生成 JNI 头文件
[参考文章]:javah javac 命令行生成native的方法教程 [参考文章]:用javah 导出类的头文件, 常见的错误及正确的使用方法 项目需要调用 C++动态库,由于项目包结构发生变化,需 ...
随机推荐
- 怎样实现多文件上传 在iOS开发中
NSURL* url = [NSURL URLWithString:@"xxx"]; ASIFormDataRequest* request = [ASIFormDataReque ...
- IOS学习之segmented control
转载请注明出处 http://blog.csdn.net/pony_maggie/article/details/27086877 作者:小马 什么是segmented control? 先上几张图: ...
- transition与animation
以前,一直都知道,transition是animation的一个简化版,甚至不算是动画,而是一种过渡. transition的用法 早两天用transition写了一个按钮滑动的效果,类似于IOS的设 ...
- Bandwidth内存带宽測试工具
本博文为原创,遵循CC3.0协议,转载请注明出处:http://blog.csdn.net/lux_veritas/article/details/24766015 ----------------- ...
- ASP.NET - 锚点跳转,用于回到顶部
<a name ="top"></a> <a href ="#top">回到顶部</a> 第一行代码写在顶部,第 ...
- 关于new enhancement的一些知识
关于new enhancement sap源程序里也给我们留了很多. 以下例句point .section.spot说明这些知识点. 1.不管是point还是section 都是基于spot的,spo ...
- SSH2三大框架整合出错(四)
<%@taglib prefix="c" uri="http://java.sun.com/jsf/core" %> usage: java org ...
- Java开源运行分析工具(转)
FProfiler FProfiler是一个非常快的Java profiler.它利用BCEL和log4j来记录每个方法从开始到结尾的日记.FProfiler可以用来在你的应用程序,Servle ...
- uva 10692 - Huge Mods(数论)
题目链接:uva 10692 - Huge Mods 题目大意:给出一个数的次方形式,就它模掉M的值. 解题思路:依据剩余系的性质,最后一定是行成周期的,所以就有ab=abmod(phi[M])+ph ...
- SVM(三)—Kernels(核函数)
(整理自AndrewNG的课件,转载请注明.整理者:华科小涛@http://www.cnblogs.com/hust-ghtao/) 内容整理中...