编写第一个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");