JNI初步学习

来源:互联网 发布:win10系统开机优化 编辑:程序博客网 时间:2024/05/16 05:12
1、 编写java程序:这里以CTestHello 为例。  

代码1:
   
class CTestHello{  

public native void displayHelloWorld();//所有native关键词修饰的都是对本地的声明  

static
{   

//载入本地库 ,此处为动态加载 ,库的文件名可能为"libhello.dll"或者"libhello.so"
//如果" hello" 库还依赖于其他动态库,同样需要在此处声明,最好是按库生成依赖的先后顺序来加载,

//如果依赖的库不声明,jni调用将加载失败。


System.loadLibrary("hello");

}   

public static void main(String[] args)

{   

new CTestHello().displayHelloWorld();  

} 

}

2、编译CTestHello ,使用命令 javac CTestHello.java,生成 CTestHello.class文件。

3、使用命令javah  CTestHello,为CTestHello.java生成 CTestHello.h的jni头文件。

4、以CTestHello.h为头文件建立hello.dll的C++ dll工程,
【注意】需要将该工程添加 jdk 的 jin目录下的 win32
和include 包含路径,并且在hello.cpp头部添加 #include <jni.h> 和 #include "CTestHello.h"
在hello.cpp中实现 CTestHello.h 提供的函数声明。

5、编译hello.dll的C++ dll工程,将生成的 hello.dll拷贝到与CTestHello.class文件同级的目录。

6、使用命令java CTestHello,即可调用hello.dll的代码。

原创粉丝点击