Java调用C/C++动态库so
2015-07-13 22:58
561 查看
参考网址
关于java调用C接口时,类型的转换,如char* /article/1771894.html
JNI的替代者—使用JNA访问Java外部功能接口 http://www.cnblogs.com/lanxuezaipiao/p/3635556.html
注意事项:
① 下载jna.jar包 ,地址 http://download.csdn.net/detail/geqiandebei/8896461
② ***C/C++动态库,和java程序放在同一目录,Linux下需在动态库so名字前加lib,如test.so改为libtest.so
③loadlibrary函数加载的库,不带后缀
有出现 “
Exception in thread "main" java.lang.UnsatisfiedLinkError ” 错误的,可能是没有使用JNA的缘故
基本程序框架如下:
关于java调用C接口时,类型的转换,如char* /article/1771894.html
JNI的替代者—使用JNA访问Java外部功能接口 http://www.cnblogs.com/lanxuezaipiao/p/3635556.html
注意事项:
① 下载jna.jar包 ,地址 http://download.csdn.net/detail/geqiandebei/8896461
② ***C/C++动态库,和java程序放在同一目录,Linux下需在动态库so名字前加lib,如test.so改为libtest.so
③loadlibrary函数加载的库,不带后缀
有出现 “
Exception in thread "main" java.lang.UnsatisfiedLinkError ” 错误的,可能是没有使用JNA的缘故
基本程序框架如下:
import com.sun.jna.Library; import com.sun.jna.Native; import com.sun.jna.Platform; public class show { public interface CLibrary extends Library { CLibrary INSTANCE = (CLibrary) Native.loadLibrary("Test",CLibrary.class); public String show2(String data); public void show1(String a ,String b ); public String p(); public int add(int a,int b); } public static void main(String[] args) { String a="geqian" ; String b="debei"; show t=new show(); CLibrary.INSTANCE.show1(a,b); System.out.print("a="+a); System.out.print(CLibrary.INSTANCE.add(1,2)); System.out.print(CLibrary.INSTANCE.p()); } }
相关文章推荐
- 【c++】size_t 和 size_type的区别
- C语言指针、地址、赋值三者含义
- 关于C++内存中字节对齐问题的详细介绍
- C中调用C++与C++调用C
- C语言程序设计基础篇
- C语言程序设计1~3章
- C++面试宝典(整理版)5
- C++面试宝典(整理版)4
- 标准C++中有四个类型转换符:static_cast、dynamic_cast、reinterpret_cast、和 const_cast
- C语言程序设计基础123章
- C语言数据类型部分总结
- [leetcode-65]Valid Number(C语言)
- 来北京的日子(2)
- 【学习笔记】【OC语言】类方法
- C++多线程学习
- POJ 3468
- 循环首次适应算法、首次适应算法、最佳适应算法_C语言版
- c/c++ # 与 ##
- C语言入门学习总结(一)
- C语言时间处理