java的jni_Java JNI

测试JNI的使用方法

环境准备

开发环境需要Java SDK(官网下载),下载完后安装Java SDK。

编译使用的MinGW,64位的官网可以找到下载地址。

项目建立及代码编写

在任意地方新建一个目录,保存这个项目,然后新建一个src目录,用于存放源文件。因为Java有包的概念,所以进入src目录后,根据包名的层次,依次建立相应目录,然后新建Java源程序文件,比如:

1 packagetest.jni;2

3 public classJniTest {4

5 public native voidcallme();6

7 public static voidmain(String[] args) {8 System.out.println("test jni");9 newJniTest().callme();10 }11

12 static{13 System.loadLibrary("jt");14 }15 }

编译Java代码,生成class文件。然后使用javah工具生成c语言头文件,命令如下:

javah test.jni.JniTest

这时目录下会生成一个以包名命名的.h文件,接下来新建一个c源程序jni.c,内容如下:

1 #include "jni.h"

2 #include "test_jni_JniTest.h"

3

4 JNIEXPORT voidJNICALL Java_test_jni_JniTest_callme5 (JNIEnv *jEnv, jobject o)6 {7 printf("from c\n");8 }

编译动态链接库

c源程序里引用了JDK里的一个头文件jni.h,在JDK安装目录下的include目录里,jni.h里引用了另一JDK头文件jni_md.h,在include目录的win32目录里,所以编译时加上这两个搜索地址

gcc-Wall -shared -I"D:\Program Files\Java\jdk1.8.0_91\include" -I"D:\Program Files\Java\jdk1.8.0_91\include\win32" -o jt.dll jni.c

这时,项目目录下就会生成一个jt.dll文件

运行结果

下面就可以执行class文件,查看结果了。

java test.jni.JniTest

正常情况下,会在控制台输出

test jni

from c

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值