JAVA调用动态库

在实际开发中经常会遇到java去调用别人提供的第三方接口,这种接口一般以动态库最为常见
在java中调用动态库有好几种方法:
下面我具体介绍用jna调用已有的第三方动态库

动态库是现成的,这里我写一个动态库,具体代码如下:
导出动态库的头文件
test.h


#ifndef TEST_H
#define TEST_H
#ifdef __cplusplus
extern "C"
{
#endif
int add (int a,int b);
#ifdef __cplusplus
}
#endif
#endif


test.cpp

#include "test.h"
int add(int a,int b)
{

return a+b;
}



用 g++ -fPIC -shared test.cpp -olibtestadd.so 编译生成libtestadd.so文件
下面是java调用的代码


import com.sun.jna.Native;
import com.sun.jna.Library;
public class JavaTestdll {

public interface idll extends Library{
idll instens=(idll)Native.loadLibrary("testadd", idll.class);
public int add(int a,int b);
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(idll.instens.add(3, 4));
}

}



用javac编译运行即可

备注:windows下面的调用方法与此相同

另外 JNI调用动态库的时候需要用javah生成头文件然后在编译动态库这种方式比较麻烦,如果动态库是自己写的可以这么调用,否则第三方库无法用这种调用方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值