文章字数:250,阅读全文大约需要1分钟
jni(java native interface)允许java和本地方法交互,但是会丧失平台的可移植性。
实现步骤
- 编写
java native
方法1
2
3
4
5
6
7
8
9
10public class HelloWorld {
public native void displayHelloWorld();//所有native关键词修饰的都是对本地的声明
static {
System.loadLibrary("hello");//载入本地库
}
public static void main(String[] args) {
//调用
new HelloWorld().displayHelloWorld();
}
} - 使用
javac
编译java类1
javac HelloWorld.java
- 使用
javah
生成头文件1
javah HelloWord
- 本地方法实现
编写和javah
生成的头文件声明方法相同的方法。HelloWorldImpl.cpp
生成dll,重命名为hello.dll移动到java目录下。1
2
3
4
5
6
7
8
9
JNIEXPORT void JNICALL
Java_HelloWorld_displayHelloWorld(JNIEnv*env,jobject obj)
{
printf("hello");
return;
}
调用1
2
3static {
System.loadLibrary("hello");//载入本地库
}