使用设备:macOS-10.15
jni调用c实践大体流程:
1、>javac HelloWorld.java,生成HelloWorld.class文件。
2、>javah HelloWorld,生成HelloWorld.h头文件。
3、创建HelloWorld.c文件来实现HelloWorld.h头文件;
4、从jdk/include目录拷贝jni.h、jni_md.h、jawt_md.h等头文件到HelloWorld.c同级目录,且.h文件中依赖不要用尖括号,如#include "jni.h"。
5、>gcc helloWorld.c -fPIC -shared -o hello.so,编译HelloWorld.c文件生成.so文件;
6、在java应用中调用动态链接函数:在HelloWorld中增加main函数,静态加载.so库,然后调用HelloWorld类中的方法;
Java调用c代码实现的动态链接函数库:
public class helloWorld{
/**
* 定义需要在动态链接库中实现的方法
*/
public static native void helloWorld();
public static native void test_a();
static{
// 必须是动态函数库文件的绝对路径
System.load("/Users/eason/Documents/code-hub/jdk-study/vimCodes/jniTest/hello.so");
// libtest.so函数库中包含test_a、test_b等函数,
System.load("/Users/eason/Do