java通过jni怎么调用c

2024-12-03 22:39:20
推荐回答(1个)
回答1:

只提供思路,自己去摸索,这样才能吧知识转化为自己的

1、编译一个class类 里面定义一个函数,注意要用native关键字,这是 jni入口的标志

比如 public int native jniSum(int a, int b) ;

不需要实现这个函数,像定义接口一样。

2、使用jdk里面的一个工具 exe,叫什么 jnih.exe 忘了。敲命令通过这个class 生成一个同名的 .h 文件 .h 里面会包含包路径的。

3、然后你就可以自己写 C/C++代码,实现 .h里 生成的 jniSum的 C版本的函数了

4,然后将这个C/C++的代码编译生成一个 dll 比如名字叫 LibJniSum.dll

5,在你的 class类里,加入静态引用

static {
System.loadLibrary("LibJniSum") ;//不要 后缀。

}

只要程序找得到你的 dll,就会自动加载dll
然后你就可以直接调用你的 jniSum了