jni javah
如何通过javah生成jni头文件
1.javah的使用说明:

-classpath 给出包含native接口的java类的.class文件路径
-d / –o 指定生成的头文件的,-d只给出文件不指定文件名, -o直接指定文件的路径给名字
-jni 给出包含native接口的java类的包名和类名
2.例子
2.1 java文件代码
1 package com.eostek.serialport;
2
3 import java.io.FileDescriptor;
4
5 public class SerialPort {
6 static {
7 System.loadLibrary("serialport_jni");
8 }
9
10 public static native FileDescriptor open(String path, int baudrate);
11
12 public static native void close(FileDescriptor fd);
13 }2.2 在终端先编译好java文件,然后通过javah生成jni头文件
例如:(路径根据实际项目修改)
javah -classpath ../../../out/target/common/obj/APPS/SerialPort_intermediates/classes/ -o jni/SerialPort.h -jni com.eostek.serialport.SerialPort
执行命令后 在当前目录的jni子目录生成一个SerialPort.h文件,文件内容如下:
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>/* Header for class com_eostek_serialport_SerialPort */
#ifndef _Included_com_eostek_serialport_SerialPort
#define _Included_com_eostek_serialport_SerialPort#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: com_eostek_serialport_SerialPort
* Method: open
* Signature: (Ljava/lang/String;I)Ljava/io/FileDescriptor;
*/
JNIEXPORT jobject JNICALL Java_com_eostek_serialport_SerialPort_open
(JNIEnv *, jclass, jstring, jint);
/*
* Class: com_eostek_serialport_SerialPort* Method: close
* Signature: (Ljava/io/FileDescriptor;)V
*/
JNIEXPORT void JNICALL Java_com_eostek_serialport_SerialPort_close
(JNIEnv *, jclass, jobject);
#ifdef __cplusplus
}#endif
#endif
jni javah的更多相关文章
- Android Studio JNI javah遇到的问题
好久没写博客了.持之以恒的勋章也被收回了.以后要好好坚持.. 最近在学习jni,但是遇到了一点麻烦的问题.好在终于解决了,便记下来解决一下. 其他入门的jni文章有很多,这里便不在累赘,直接上我遇到的 ...
- jni.h头文件详解二
作者:左少华 博客:http://blog.csdn.net/shaohuazuo/article/details/42932813 转载请注明出处:http://blog.csdn.net/shao ...
- 【转】 jni.h头文件详解(二)
原文网址:http://blog.csdn.net/shaohuazuo/article/details/42932813 作者:左少华 博客:http://blog.csdn.net/shaohua ...
- 解决javah生成c头文件时找不到android类库的问题
问题描述: cmd下面进入工程的bin/classes下面,执行 javah xxx.xxx.A 生成头文件, 一般来说都是可以成功执行的,但是如果xxx.xxx.A类里面引用了android类库里面 ...
- java native方法及JNI实例 (转)
转自:http://blog.csdn.net/xw13106209/article/details/6989415 1.参考文献: http://blog.csdn.net/youjianbo_ha ...
- java native方法与JNI实现
native方法定义: 简单地讲,一个Native Method就是一个java调用非java代码的接口.一个Native Method是这样一个java的方法:该方法的实现由非java语言实现,比如 ...
- ok6410 android driver(7)
This article talk about how to test device driver on JNI. There are two ways to test the device driv ...
- ndk-gdb 对java/native code联合调试(升级版)
之前写过一篇 关于android native 开发,调试的文章(http://www.cnblogs.com/yaozhongxiao/archive/2012/03/13/2393959.html ...
- java初探native
最近碰见一个java中一个native关键字,不知道是干什么的,如下: public native String FileName(String strURL); static{ ...
随机推荐
- 《大话操作系统——做坚实的project实践派》(2)
<大话操作系统--做坚实的project实践派>(2)
- UESTC--1272--Final Pan's prime numbers(水题)
Final Pan's prime numbers Time Limit: 1000MS Memory Limit: 65535KB 64bit IO Format: %lld & % ...
- [AHOI 2009] 同类分布
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1799 [算法] 数位DP [代码] #include<bits/stdc++. ...
- ROS-VIM
在终端输入:vimtutor,进入学习教程. 常用快捷键: a 编辑模式; 编辑状态下 回车 换行; Ctrl+n 补全命令; x剪切; p复制; u撤销; :q!不保存退出; :wq保存并退出; 以 ...
- POJ 3252 组合数学?
大神们的题解我一个都没看懂........... 十分的尴尬 题意:算出闭区间内二进制中0的个数大于等于1的个数的数字有多少个 思路: 组合数学(n小于500的时候都可以出解,只不过高精比较麻烦). ...
- 对ListView的Item子控件监听并跳转页面
public class MyAdapteforOwner extends BaseAdapter{ List<OwnerDevice>datas; private Context con ...
- 第四章 Python之文件处理
文件操作 文件操作一般分为三步:打开文件得到文件句柄并赋值给一个变量--->通过句柄对文件进行操作-->关闭文件 f=open(r'C:\Users\hesha\PycharmProjec ...
- java 公开内部类无法实例化 no enclosing instance 解决办法
因为B类不是A类的静态内部类,所以B累也只能像A类的成员一样通过new A()的实例访问,new(new A()).B(),这显然不是我们想要的方式,于是需要在B类的前边加上static,变成下边这样 ...
- poj 2954 Triangle 三角形内的整点数
poj 2954 Triangle 题意 给出一个三角形的三个点,问三角形内部有多少个整点. 解法 pick's law 一个多边形如果每个顶点都由整点构成,该多边形的面积为\(S\),该多边形边上的 ...
- G700存储配置
首先在G700上创建RAID组,这次选择的是SSD做RAID5,SAS磁盘做的是RAID10,把空闲的物理磁盘加入RAID组内,把已分配给RAID组的物理磁盘全部加在一次资源池里面pool 创建主机组 ...
