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{ ...
随机推荐
- 【DataStructure】The difference among methods addAll(),retainAll() and removeAll()
In the Java collection framework, there are three similar methods, addAll(),retainAll() and removeAl ...
- Caffe C++API 提取任意一张图片的特征系列二----MemoryData
介绍一种更加灵活的方法,用MemoryData层输入数据,可以直接用opencv接口读入我们的图片再添加的网络中. 第一个问题:仍然是工程建立问题,提示卷积层或其他层没有注册,解决方法与上一篇博客一 ...
- 杂项-DB:ETL(数据库仓库技术)
ylbtech-杂项-DB:ETL(数据库仓库技术) ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract).交互转换(transfor ...
- System.setProperty 与 System.getProperty
转自:https://www.cnblogs.com/woftlcj/p/8404451.html System可以有对标准输入,标准输出,错误输出流:对外部定义的属性和环境变量的访问:加载文件和库的 ...
- vue.js和node.js的认识
首先vue.js 是库,不是框架,不是框架,不是框架. Vue.js 使用了基于 HTML 的模版语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据. Vue.js 的核心是一个允许你 ...
- 淘宝druid报错:javax.management.InstanceNotFoundException: com.alibaba.druid:type=DruidDataSourceStat
问题: 启动tomcat报错: Tomat报出一下异常:ERROR [com.alibaba.druid.stat.DruidDataSourceStatManager] – unregister m ...
- 几个月来使用mobx代替redux的一些总结
遇到的一些小坑 React组件内部想要调用store里的action方法,得如下图,否则不会调用(这个现在看来好像不对,待重新检验) 而不能如下图 组件中调用改变store的action后,状态变化并 ...
- JavaScript 运行机制 & EventLoop
JavaScript 运行机制 & EventLoop 看阮老师博客和自己的理解,记录的学习笔记,js的单线程和 事件EventLoop 机制. 1. JavaScript是单线程 JavaS ...
- HDU 1061 Rightmost Digit( 快速幂水 )
链接:传送门 题意:求 N^N 的个位 思路:快速幂水题 /********************************************************************** ...
- 51nod 1301 集合异或和(DP)
因为当\(A<B\)时,会存在在二进制下的一位,满足这一位B的这一位是\(1\),\(A\)的这一位是\(0\). 我们枚举最大的这一位.设为\(x\)吧. 设计状态.\(dp[i][j][1/ ...