java中jni的使用。

Java Native Interface(JNI)是Java语言的本地编程接口,是J2SDK的一部分。在java程序中,我们可以通过JNI实现一些用java语言不便实现的功能。通常有以下几种情况我们需要使用JNI来实现。

  • 标准的java类库没有提供你的应用程序所需要的功能,通常这些功能是平台相关的
  • 你希望使用一些已经有的类库或者应用程序,而他们并非用java语言编写的
  • 程序的某些部分对速度要求比较苛刻,你选择用汇编或者c语言来实现并在java语言中调用他们
第一个jni工程,以helloworld工程为例。

1、创建JNITest工程(我的工程路径为  E:\Work\MyElipse_Spring\JNITest )

2、创建HelloWorld.java文件,代码如下:

package com.jni;


public class HelloWorld {
static {
System.loadLibrary("JNITest");
}


public native void sayHello();


public static void main(String[] args) {
new HelloWorld().sayHello();
}

}

3、在eclipse好像会自动生成HelloWorld.class文件(我的路径如下:E:\Work\MyElipse_Spring\JNITest\bin\com\jni)

4、生成com_jni_HelloWorld.h的文件。


5、查看com_jni_HelloWorld.h文件的内容

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class com_jni_HelloWorld */


#ifndef _Included_com_jni_HelloWorld
#define _Included_com_jni_HelloWorld
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     com_jni_HelloWorld
 * Method:    sayHello
 * Signature: ()V
 */
JNIEXPORT void JNICALL Java_com_jni_HelloWorld_sayHello
  (JNIEnv *, jobject);


#ifdef __cplusplus
}
#endif
#endif

6、用C/C++编辑器生成一个JNITest.dll文件。

7、我的C/C++工程路径为(E:\Work\C++\JNITest)在JNITest目录下还有一个JNITest文件夹,把相关的文件放到该目录下。

修改com_jni_HelloWorld文件


其中jni.h和jni_md.h分别在你安装的jdk文件夹中找到。


8、编写helloworld.cpp代码



#include "jni.h"
#include "jni_md.h"
#include "com_jni_HelloWorld.h"
#include <stdio.h>


JNIEXPORT void JNICALL Java_com_jni_HelloWorld_sayHello(JNIEnv *, jobject)
{
printf("Hello world!/n");
    return;
}


9、修改

9\编译生成JNITest.dll


10、往eclipse工程中导入JNITest.dll文件。

导入.dll文件的方法是:右单击项目名→导入→常规→文件系统→下一步→浏览→选择DLL文件所在目录→确定→勾选DLL文件→完成.

11、运行。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值