JNI的使用

1、 JNI调用C/C++程序(dll方式)

a) 详细步骤

i. 新建一个java project,命名为JNITest

ii. new一个package  com.jthink

iii. 在这个包中新建一个class,命名为Demo,修改Demo.java如下:

package com.jthink;

public class Demo {

static {

//System.loadLibrary("Demo");

//System.loadLibrary("jniDll");

}

public native void sayHello();

public static void main(String[] args) {

//System.out.println(System.getProperty("java.library.path"));

new Demo().sayHello();

}

}

iv. 编译所编写的java类

1. 直接用eclipse编译(右击项目,run as -> java application)

2. 打开工作空间中的项目JNITest,进入bin\com\jthink查看是否生成了Demo.class,如果有则表明编译成功

v. 生成C/C++头文件

1. 打开一个cmd,首先进入工作空间,依次打指令cd bin  javah com.jthink.Demo

2. 进入bin目录发现生成com_jthink_Demo.h说明生成成功


 

vi. 生成dll库

1. 使用VS2008创建一个项目

项目类型选择Win32,模板选择Win32项目,输入名称Demo和位置,单击确定

2. 点击下一步

3. 选择dll,附加选项中勾选“空项目”,然后点击完成

4. 创建c文件testjni.c

#include <stdio.h>

#include "com_jthink_Demo.h"

JNIEXPORT void JNICALL Java_com_jthink_Demo_sayHello(JNIEnv *envjobject obj) {

printf("hello world\n");

}

5. 拷贝java安装文件(C:\Program Files\Java\jdk1.6.0_21\include)include下面的jni.h和include/win32(C:\Program Files\Java\jdk1.6.0_21\include\win32)下面的jni_md.h以及刚刚生成的头文件com_jthink_Demo.h到项目中去,路径为:workspace\Demo\Demo这个文件夹下面,跟有个文件后缀为.user的同级

6. 编译这个项目得到dll,右击解决方案->重现生成解决方案,在G:\qjc\C++\Demo\Debug生成dll文件

vii. 拷贝刚刚那个dll到项目中,和src文件夹同级(或者放到system32中供调用,还有种办法是放到某个文件夹中,将这个路径加入到环境变量中)

viii. Java调用dll动态链接库

package com.jthink;

public class Demo {

static {

System.loadLibrary("Demo");

//System.loadLibrary("jniDll");

}

public native void sayHello();

public static void main(String[] args) {

//System.out.println(System.getProperty("java.library.path"));

new Demo().sayHello();

}

}

ix. 运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值