java调用so库
2015-12-29 12:03
531 查看
Jnative的使用(Linux系统下so调用)
1.环境配置
下载JNative_src.zip和JNative.jar,JNative_src解压会有JNativeCpp.dll和libJNativeCpp.so。JNativeCpp.dll是针对Windows,将其放在system32下面,libJNativeCpp.so是针对Linux,将其放在/usr/lib/下面。
2.新建so库
如果有提供好的跳过(不过JNative目前只支持32位,所以so库必须是32位的)
新建so_test.h和test_a.c
简单的加法运算
![](http://img.blog.csdn.net/20151229114945602)
![](http://img.blog.csdn.net/20151229115032556)
创建好之后在其目录下打开终端进行gcc编译动态库
gcc test_a.c -fPIC -shared -o libtest.so
![](http://img.blog.csdn.net/20151229115852006)
目录下生成libtest.so
![](http://img.blog.csdn.net/20151229120014423)
将生成的libtest.so放在/usr/lib/目录下
3.新建项目
将JNative.jar包放在项目中引用
![](http://img.blog.csdn.net/20151229113453992)
JNative clib = new JNative(“libtest.so”,”test_a”);
“libtest.so”要调用的so库,“test_a”so库中需要调用的方法
clib.setParameter(0,5);
test_a(int a,int b)调用的方法设置参数
clib.setRetVal(Type.INT);
设置返回值类型
clib.invoke();
执行调用
clib.getRetVal();
获取返回值
1.环境配置
下载JNative_src.zip和JNative.jar,JNative_src解压会有JNativeCpp.dll和libJNativeCpp.so。JNativeCpp.dll是针对Windows,将其放在system32下面,libJNativeCpp.so是针对Linux,将其放在/usr/lib/下面。
2.新建so库
如果有提供好的跳过(不过JNative目前只支持32位,所以so库必须是32位的)
新建so_test.h和test_a.c
简单的加法运算
创建好之后在其目录下打开终端进行gcc编译动态库
gcc test_a.c -fPIC -shared -o libtest.so
目录下生成libtest.so
将生成的libtest.so放在/usr/lib/目录下
3.新建项目
将JNative.jar包放在项目中引用
JNative clib = new JNative(“libtest.so”,”test_a”);
“libtest.so”要调用的so库,“test_a”so库中需要调用的方法
clib.setParameter(0,5);
test_a(int a,int b)调用的方法设置参数
clib.setRetVal(Type.INT);
设置返回值类型
clib.invoke();
执行调用
clib.getRetVal();
获取返回值
相关文章推荐
- Huffman编码 java版
- JAVA 几种多线程的简单实例 Thread Runnable
- 更新系统或者更换Eclipse后,双击Eclipse-drawable,或者在布局文件中,查看图片时,显示乱码。png 和 jpg
- java 打jar包和运行jar
- JAVA Socket实现多客户端聊天
- BM算法 java代码
- 用来比较的java接口,Comparator 和 Comparable
- java+ajax实例
- 详细的java(GC)原理
- Java继承中属性、方法和对象的关系
- Spring MVC静态资源处理
- Java基础类Class使用指南
- org.eclipse.swt.SWTError: No more handles的解决办法
- 【spring-security】InMemoryDaoImpl在spring-security4.x版本不存在
- Winform客户端到Java服务端的图片展示和上传
- myeclipse中修改文件打开方式
- C#和java的图片上传和展示
- 简单SpringMVC的学习框架
- 个人学习-java-session
- Java Web 中的监听