Java Native Interface概述

欢迎进入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]

努力爱一个人。付出,不一定会有收获;

Java Native Interface概述

相关文章:

你感兴趣的文章:

标签云: