java通过jni怎么调用c
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了
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了
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询