参考原文:https://blog.csdn.net/Thousa_Ho/article/details/78653835
环境是Linux
1.编写好java文件
public class ATest { private native void hello(); static{ System.load("/home/libAtest.so"); } public static void main(String[] args){ ATest test = new ATest(); test.hello(); } }
2.执行命令生成.h文件
javah -jni -classpath 类所在的目录地址 -d 文件生成的目录地址 类名(不要后缀)
3.编写一个.c文件实现方法
#include<jni.h>
#include<stdio.h>
#include"ATest.h"
/*
* Class: ATest
* Method: hello
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_ATest_hello
(JNIEnv *, jobject){
printf("hello");
}
4.最后打包成.so文件
g++ -I"/usr/local/java/jdk1.8.0_121/include/linux" -I"/usr/local/java/jdk1.8.0_121/include" -fpic -shared -o libAtest.so ATest.c
5.使用之前编写的Java代码,就可以调用刚生成的.so文件