JNI完全手册介绍及使用有何特征?

5小时前 (18:41:42)阅读1回复0
西柚
西柚
  • 管理员
  • 注册排名7
  • 经验值70245
  • 级别管理员
  • 主题14049
  • 回复0
楼主

  JAVA以其跨平台的特征深受人们喜欢,而又正因为它的跨平台的目标,使得它和当地机器的各类内部联络变得很少,约束了它的功用。处理JAVA对当地操做的一种办法就是JNI。

JAVA通过JNI挪用当地办法,而当地办法是以库文件的形式存放的(在WINDOWS平台上是DLL文件形式,在UNIX机器上是SO文件形式)。

  通过挪用当地的库文件的内部办法,使JAVA能够实现和当地机器的密切联络,挪用系统级的各接口办法。

简单介绍及利用如下:

一、JAVA中所需要做的工做

在JAVA法式中,起首需要在类中声明所挪用的库名称,如下:

static {

System。

  loadLibrary(“goodluck”);

在那里,库的扩展名字能够不消写出来,事实是DLL仍是SO,由系统本身揣度。

还需对将要挪用的办法做当地声明,关键字为native。且只需要声明,而不需要详细实现。如下:

public native static void set(int i);

public native static int get();

然后编译该JAVA法式文件,生成CLASS,再用JAVAH号令,JNI就会生成C/C++的头文件。

例如法式testdll。java,内容为:

public class testdll

static

System。loadLibrary("goodluck");

public native static int get();

public native static void set(int i);

public static void main(String[] args)

testdll test = new testdll();

test。

  set

(10);

System。out。println(test。get());

用javac testdll。java编译它,会生成testdll。class。

再用javah testdll,则会在当前目次下生成testdll。

  h文件,那个文件需要被C/C++法式挪用来生成所需的库文件。

0
回帖

JNI完全手册介绍及使用有何特征? 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息