JNI教程(三)

来源:互联网 发布:linux oracle关闭监听 编辑:程序博客网 时间:2024/06/05 04:19

一个简单JNI实现add的demo

一、编写CalcAddJava.java文件

public class CalcAddJava{    //所有native关键词修饰的都是对本地的声明    public native int add(int num1 , int num2);    static {        System.loadLibrary("add");//载入本地库    }    public static void main(String[] args) {       CalcAddJava obj = new CalcAddJava();       int result = obj.add(1,2);       System.out.println("result is :" + result);    }}

二、执行javac命令
javac CalcAddJava.java

三、执行javah命令创建JNI头文件
(1) javah CalcAddJava
(2) 修改一下文件名称
mv CalcAddJava.h CalcAddJni.h

四、创建JNI实现文件
vi CalcAddJni.cpp

#include "CalcAddJni.h"#include "iostream"/* class:     CalcAddJava * Method:    add * Signature: (II)I */JNIEXPORT jint JNICALL Java_CalcAddJava_add  (JNIEnv *env, jobject static_or_instance, jint num1, jint num2) {        std::cout << "hello Java_CalcAddJava_add implements JNI in c++" << std::endl;        return num1 + num2;}

五、编译动态链接库
(1) g++ -fPIC -I/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/include/ -I/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/include/Linux -c CalcAddJni.cpp

(2) g++ -shared -o libadd.so CalcAddJni.o

六、执行java类
java -Djava.library.path=. CalcAddJava

0 0
原创粉丝点击