欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入
JNI概述
JNI 是Java Native Interface的缩写,中文译为“Java本地调用”。通常使用JNI技术可以做到以下两点:
(1)Java程序中的函数可以调用Native语言函数,Native函数一般指的是C/C ++编写的函数;
(2)Native程序中的函数可以调用Java层的函数,也就是说在C/C++程序中可以调用Java层函数。
当然任何事物都有两面性,JNI也不例外,使用JNI主要缺点有以下两点:
(1)使用JNI技术将导致Java Application不能跨平台。如果要移植到别的平台上,那么Native代码就要重新进行编写;
(2)Java是强类型的语言,而C/C++不是,因此在编写JNI的时候要非常谨慎。
JNI–Hello World
我们在学习任何一门语言技术时,首先编写的应该是简单的“ Hello World ”,那么接下来就给大家介绍怎样使用JNI技术来实现Hello World。
(1)首先在Java类中声明一个native的方法
在eclipse中新建一个NativeDemo工程,类名为TestNative,具体代码如下所示:
[java]
package com.jony.nativetest;
public class TestNative {
public native void sayHello();
/**
* @param args
*/ www.2cto.com
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
(2)使用Javah命令生成包含native方法定义的C/C++头文件;
在Java的安装路径(D:\Java\jdk1.6.0_24\bin)中大家可以看到很多可执行文件,其中包含我们常用的java、javac、javah等命令。首先,我们可以简单查看一下javah命令的使用方法,在命令行中输入 javah -help 查看命令参数和使用方法,如图所示:
接下来首先将我们编写的TestNative.java文件编译成class文件,在我本地代码中对应的路径为:E:\Workspaces\android\NativeDemo\bin,具体如图所示:
在命令提示框中输入:cd E:\Workspaces\android\NativeDemo\bin 和 E: 进入到对应的文件目录,如图所示:
[1][2]
努力爱一个人。付出,不一定会有收获;