


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java中使用Jni简单示例过程1、第一步是打开eclipse新建java工程这里工程命名为TestNativeCode包名com.liyong.TestNativeCode然后新建java类TestNativeCode.java编写如下代码:public class TestNativeCode public native void sayHello();public static void main(String args) 1、第二不是得到TestNativeCode 的.h头文件步骤如下:目录结构:F:android_NDKTestNativeCodebincomliyongTestNativeCodeTestNativeCode.class打开命令行 cmd 进入工程所在路径的bin目录下F:cd F:android_NDKTestNativeCodebin输入如下命令:Javah com.liyong.TestNativeCode.TestNativeCode(大小写一定要区分)这是可以在bin目录下可以看到生成的.h头文件com_liyong_TestNativeCode_TestNativeCode.h注意:这里必须在bin目录下执行Javah com.liyong.TestNativeCode.TestNativeCode这是应为要得到完整的类名2、接下来是打开vc新建一个动态库工程步骤如下:1.文件-新建-工程-Win32 Dynamic-Link Library 工程名NativeCode2.把刚才生成的.h头文件拷贝到vc工程空间中Microsoft Visual StudioMyProjectsNativeCode下3.追加头文件到工程中头文件内容如下:/* DO NOT EDIT THIS FILE - it is machine generated */#include jni.h/* Header for class com_liyong_TestNativeCode_TestNativeCode */#ifndef _Included_com_liyong_TestNativeCode_TestNativeCode#define _Included_com_liyong_TestNativeCode_TestNativeCode#ifdef _cplusplusextern C #endif/* Class: com_liyong_TestNativeCode_TestNativeCode* Method: sayHello* Signature: ()V*/JNIEXPORT void JNICALL Java_com_liyong_TestNativeCode_TestNativeCode_sayHello(JNIEnv *, jobject);#ifdef _cplusplus#endif#endif4.在jdkinclude目录下jni.h和jdkincludewin32目录下的jni_md.h拷贝到vc工程目录下然后追加头文件5.编写.cpp文件 步骤如下:导入生成的本地头文件#include com_liyong_TestNativeCode_TestNativeCode.h实现本地方法完整代码如下:#include #include com_liyong_TestNativeCode_TestNativeCode.h/using namespace std;JNIEXPORT void JNICALL Java_com_liyong_TestNativeCode_TestNativeCode_sayHello(JNIEnv * env, jobject obj)coutHello NDK!endl;6.编译生成动态库首先编译源文件,编译成功后生成动态库文件在Debug下NativeCode.dll然后把项目根目录路径加入到环境变量下D:ProgramFilesMicrosoft Visual StudioMyProjectsNativeCodeDebug这是因为当我们的动态库文件发生改变时能够自动的更新动态库所引用的地方,就不需要再去拷贝注意:这里是用户变量7.然后关闭eclipse这是因为eclipse在启动之前读取环境变量,然后在运行期间就不在读取环境变量,我们在修改了环境变量后要让eclipse去调用库文件就的关闭eclipse8.调用库文件代码如下:package com.liyong.TestNativeCode;public class TestNativeCode public native void sayHello();public static void main(String a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 影视创作部管理制度
- 心电图使用管理制度
- 快递柜客户管理制度
- 总店与分店管理制度
- 总降站运行管理制度
- 成品不良品管理制度
- 成本无发票管理制度
- 房地产商业管理制度
- 排练厅手机管理制度
- 推拿科感染管理制度
- 2024全国初中数学竞赛试题及答案
- 除甲醛施工方案
- 三、油气回收设备组成
- 空调服务技术保障及人员培训方案
- 医院导医服务礼仪
- 《交流耐压试验技术》课件
- 国开80646+24219Python语言基础复习题期末复习资料
- 郑州航空工业管理学院《企业经营统计学案例》2022-2023学年第一学期期末试卷
- 四川省成都市(2024年-2025年小学五年级语文)统编版摸底考试((上下)学期)试卷及答案
- 汽车保险与理赔课件 8.2汽车水灾事故的预防与施救
- 手术室护理不良事件的管理
评论
0/150
提交评论