你的位置:首页 > 软件开发 > Java > Java中Native关键字的作用

Java中Native关键字的作用

发布时间:2016-07-25 11:00:04
初次遇见 native是在 java.lang.Object 源码中的一个hashCode方法:1public native int hashCode();为什么有个native呢?这是我所要学习的地方。所以下面想要总结下native。一、认识 native 即 JNI,Java ...

Java中Native关键字的作用

初次遇见 native是在 java.lang.Object 源码中的一个hashCode方法:

1

为什么有个native呢?这是我所要学习的地方。所以下面想要总结下native。

一、认识 native 即 JNI,Java Native Interface

凡是一种语言,都希望是纯。比如解决某一个方案都喜欢就单单这个语言来写即可。Java平台有个用户和本地C代码进行互操作的API,称为Java Native Interface (Java本地接口)。

Java中Native关键字的作用

 

二、用 Java 调用 C 的“Hello,JNI”

我们需要按照下班方便的步骤进行:

1、创建一个Java类,里面包含着一个 native 的方法和加载库的方法 loadLibrary。HelloNative.java 代码如下:

1

首先让大家注意的是native方法,那个加载库的到后面也起作用。native 关键字告诉编译器(其实是JVM)调用的是该方法在外部定义,这里指的是C。如果大家直接运行这个代码,  JVM会告之:“A Java Exception has occurred.”控制台输出如下:

1

这是程序使用它的时候,虚拟机说不知道如何找到sayHello。下面既可以手动写,自然泥瓦匠是用

    2、运行javah,得到包含该方法的C声明头文件.h

将HelloNative.java ,简单地 javac javah,如图

Java中Native关键字的作用

就得到了下面的 HelloNative.h文件 

1

jni.h 这个文件,在/%JAVA_HOME%include

3、根据头文件,写C实现本地方法

这里我们简单地实现这个sayHello方法如下:

1

4、生成dll共享库,然后Java程序load库,调用即可。

Windows上,MinGW GCC 运行如下

1

-m64表示生成dll库是64位的。然后运行 HelloNative:

1

 

终于成功地可以看到控制台打印如下:

1

三、JNI 调用 C 流程图

Java中Native关键字的作用

四、其他介绍

native是与C++联合开发的时候用的!java自己开发不用的!



 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:Java中Native关键字的作用

关键词:JAVA

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。