JNI 基本使用方法

JNI基本使用

适合有一定jni知识的人

我的环境:Eclipse3.5VS2008JDK1.6.18

首先获取开发工具。这个还是自己去找吧

Eclipse下新建Java工程Hello,并进行包com.zl,在包下新建类Hello.java

图一 工程截图

 Hello.java代码:

package com.zl;

public class Hello {

public native int add(int a, int b);

public native int sub(int a, int b);

}

主要定义两个本地调用方法作为测试方法

打开命令行,找到自己工程所在目录,定位到bin目录,执行javah -jni com.zl.Hello生成C/C++头文件

图二 C/C++头文件生成截图

打开VS2008,新建win32控制台应用程序,并选择应用类型为dll

图三 新建win32应用程序

图四:选择类型为dll,并勾选“导出符号”

将先前生成的头文件com_zl_Hello.h以及jdk/include下的jni.hjdk/include/win32下的jawt_md.hjni_md.h复制到工程下面,并在VS中将头文件添加进工程

图五:添加头文件

修改com_zl_Hello.h中的#include <jni.h>改为#include "jni.h",因为jni.h作为用户文件非系统文件,需要修改。然后在源文件中添加C++源文件com_zl_Hello.cpp,其实现代码如下:

#include "stdafx.h"

#include "com_zl_Hello.h"

JNIEXPORT jint JNICALL Java_com_zl_Hello_add

(JNIEnv *env, jobject obj, jint a, jint b) {

return (a+b);

}

JNIEXPORT jint JNICALL Java_com_zl_Hello_sub

(JNIEnv *env, jobject obj, jint a, jint b) {

return (a-b);

}

执行生成操作,将会在工程上级的DEBUG目录下找到hello.dll文件

8 Eclipse中的操作:将Hello工程导出为Hello.jar包后,新建CallJava工程

 引入Hello.jar包,并将hello.dll放到CallJava工程的根目录下。新建Java文件,调用相关代码,查看结果。

public static void main(String[] args) {

//加载hello.dll

System.loadLibrary("hello");

Hello hello = new Hello();

//调用add方法

System.out.println(hello.add(1, 2));

hello.sub(2, 1);

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值