参考原文: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文件