您的位置:首页 > 运维架构 > Linux

Linux平台下使用JNI(C动态链接库)的一点经验

2012-11-08 17:28 323 查看
Java支持数据的位操作方面很糟糕。
如果linux上有Java程序要实现位操作功能,方便的办法有调用C编写的动态链接库。

IBM文档链接:
在 Linux 平台下使用 JNI
http://www.ibm.com/developerworks/cn/java/l-linux-jni/

编写C++动态链接库遇到过的问题:
1. 有的外设使用Unicode码而不是ASCII码:在常量字符串前添加“L";
2. 多种数据类型之间的转换,比如jByteArray, jbyte*, CString, char *:为了避免麻烦,我舍弃使用CString类型,全部都用char型数组配合memset(charr, '\0', sizeof(charr)); memcpy(destarr,
srcarr, num); 这样的函数解决;
3. 动态链接库无法直接运行,调试困难:可以在动态库里写printf语句,java程序调用动态库时会打印出来。

一个非常好的讲linux下编译、使用动态链接库的参考:
Shared libraries with GCC on Linux

http://www.cprogramming.com/tutorial/shared-libraries-linux-gcc.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: