java native 关键字

native 这个关键是代表这个方法是原生态的方法,方法对应的实现不是在此文件实现的,而是其他语言实现的,比如c/c++

java 语言本身不能对操作系统底层进行操作和访问,可以通过JNI来调用其他语言。

JNI可以使java代码使用其他语言代码和调用其他语言。比如他可以调用DLL;



比如在InputStream(抽象类)里面 read()方法(次方法是抽象方法),然后在FileInputStream 继承InputStream,实现read()方法,这个方法没有方法体,用native关键字修饰

这代表他是通过JNI调用底层的东西,


JNI测试类

1.写一个类,里面定义一个用native的方法,

2,用javac  Test.java 来编译这个java文件,回生成class文件

3.用javah Test  (这边是类名)这边会生成Test.h文件

4,自己写一个vc的动态连接库,

装一个mingw 下载地址 https://sourceforge.net/projects/mingw-w64

在window上面是 gcc -I"C:\Program Files\Java\jdk1.8.0_51\include" -I"C:\Program Files\Java\jdk1.8.0_51\include\win32" -shared -m64 Test2.dll Test2.c

这边-m64 就是生成64的dll,如果装的是32的mingw的话,好像是编译不了64位的dll,会提示 Test2.c:1:0: sorry, unimplemented: 64-bit mode not compiled in

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值