编写第一个JNI程序

2018-03-29  本文已影响26人  疯狂的冰块

HelloWorld.java

public class HelloWorld {
    public native void displayHelloWorld();//所有native关键词修饰的都是对本地的声明
    static {
        System.loadLibrary("HelloWorld");//载入本地库
    }
    public static void main(String[] args) {
        new HelloWorld().displayHelloWorld();
    }
}

javac HelloWorld.java 
javah HelloWorld

HelloWorldImpl.cpp

#include "jni.h"
#include "HelloWorld.h"
 
//#include other headers
 
JNIEXPORT void JNICALL
Java_HelloWorld_displayHelloWorld(JNIEnv*env,jobject obj)
{
    printf("Helloworld!\n");
    return;
}

# 编译C++程序
gcc -o libHelloWorld.so -I/usr/software/jdk8/include -I/usr/software/jdk8/include/linux -I. -fPIC -shared HelloWorldImpl.cpp

java -Djava.library.path=. HelloWorld

输入

Helloworld!

第一个JNI程序完成!

可以通过如下代码获取library路径

System.getProperty("java.library.path");
上一篇下一篇

猜你喜欢

热点阅读