jni小示例

来源:互联网 发布:淘宝上的旗舰店可信吗 编辑:程序博客网 时间:2024/06/06 07:41

1. vi HelloWorld.java


public class HelloWorld {


    static {
        System.loadLibrary("hello");
     }


    public native void display();


    public static void main(String[] args){
        System.out.println("start....");
        HelloWorld s1 = new HelloWorld();
        s1.display();
        s1.display();
//        s1.finalize();


        HelloWorld s2 = new HelloWorld();
        s2.display();
        s2.display();
while(true) ;


    }
}

2.javac HelloWorld.java

3.javah HelloWorld

4.vi main.c

#include <jni.h>
#include "HelloWorld.h"
#include <stdio.h>


int song=0;


JNIEXPORT void JNICALL Java_HelloWorld_display
  (JNIEnv * i, jobject j){


    printf ("so:%d\n" ,song++);


}

5.gcc -fPIC -I /usr/lib/jvm/java-7-openjdk-amd64/include -shared -o libhello.so main.c

6.java   -Djava.library.path=./ HelloWorld
start....
so:0
so:1
so:2
so:3






0 0